grand-stack / graphql-architect

GraphQL Architect: A tool for designing and building GraphQL APIs backed by Neo4j
20 stars 1 forks source link

Infer schema fails after a few node types #3

Open wolfgang-ldc opened 4 years ago

wolfgang-ldc commented 4 years ago

I have a database with >80 different labels/node types. When I use the "Infer Schema" option it generates the schema for a few (~18) types initially but then stops. GraphQL_errorr.txt

It appears to work fine with a smaller, less complex database.

ed42311 commented 4 years ago

Hey @wolfgang-ldc that's an impressive dataset.

A few questions so we can run some debugging:

Thanks!

wolfgang-ldc commented 4 years ago

These type definitions have been generated from your Neo4j database.

Here are some Neo4j specific scalars that you can use to map to native Neo4j types:

scalar Point scalar Date scalar DateTime scalar Long

Edit these GraphQL type definitions below to change your GraphQL API

You can add custom logic defined with Cypher using the @cypher GraphQL schema directive

You can refer to the docs at https://grandstack.io

type FundingSource_Organization { _id: Long! AlternateNames: String! CreationDate: String! Description: String! FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! image: String! haslocationincity: [City] @relation(name: "hasLocationInCity", direction: OUT) hassecondarylocationincity: [City] @relation(name: "hasSecondaryLocationInCity", direction: OUT) }

type Acquisition_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! involvestechnologyplatform: [TechnologyPlatform] @relation(name: "involvesTechnologyPlatform", direction: OUT) scorecards: [ScoreCard] @relation(name: "hasKeyInformation", direction: IN) }

type BreakThroughTherapy_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! }

type BusinessReview_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String! FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! scorecards: [ScoreCard] @relation(name: "hasKeyInformation", direction: IN) }

type CFDAApproval_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String! FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! }

type ClinicalTrialInitiation_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! hasrelatedclinicaltrialsrecord: [ClinicalTrial] @relation(name: "hasRelatedClinicalTrialsRecord", direction: OUT) }

type ClinicalTrialNamed_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! isevaluating: [TherapeuticMolecule] @relation(name: "isEvaluating", direction: OUT) occursinsourcereference: [SourceReference] @relation(name: "occursInSourceReference", direction: OUT) hasoutcome: [EventOutcome] @relation(name: "hasOutcome", direction: OUT) isseekingindication: [DiseaseIndication] @relation(name: "isSeekingIndication", direction: OUT) hasrelatedclinicaltrialsrecord: [ClinicalTrial] @relation(name: "hasRelatedClinicalTrialsRecord", direction: OUT) }

type ClinicalTrialPhase_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! isevaluating: [TherapeuticMolecule] @relation(name: "isEvaluating", direction: OUT) hasoutcome: [EventOutcome] @relation(name: "hasOutcome", direction: OUT) hasrelatedclinicaltrialsrecord: [ClinicalTrial] @relation(name: "hasRelatedClinicalTrialsRecord", direction: OUT) hasoutcometype: [EventOutcomeType] @relation(name: "hasOutcomeType", direction: OUT) }

type ClinicalTrialPlan_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! isevaluating: [TherapeuticMolecule] @relation(name: "isEvaluating", direction: OUT) hasoutcome: [EventOutcome] @relation(name: "hasOutcome", direction: OUT) }

type ClinicalTrialReActivation_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! }

type ClinicalTrialResult_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! isevaluating: [TherapeuticMolecule] @relation(name: "isEvaluating", direction: OUT) occursinsourcereference: [SourceReference] @relation(name: "occursInSourceReference", direction: OUT) hasoutcome: [EventOutcome] @relation(name: "hasOutcome", direction: OUT) hasrelatedclinicaltrialsrecord: [ClinicalTrial] @relation(name: "hasRelatedClinicalTrialsRecord", direction: OUT) hasoutcometype: [EventOutcomeType] @relation(name: "hasOutcomeType", direction: OUT) }

type ClinicalTrialSuspension_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String! FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! hasrelatedclinicaltrialsrecord: [ClinicalTrial] @relation(name: "hasRelatedClinicalTrialsRecord", direction: OUT) }

type Collaboration_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! isevaluating: [TherapeuticMolecule] @relation(name: "isEvaluating", direction: OUT) occursinsourcereference: [SourceReference] @relation(name: "occursInSourceReference", direction: OUT) involvesmoleculartarget: [MolecularTarget] @relation(name: "involvesMolecularTarget", direction: OUT) involvestechnologyplatform: [TechnologyPlatform] @relation(name: "involvesTechnologyPlatform", direction: OUT) }

type CompanyClosure_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String! FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! }

type EMEAApproval_Event { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! isapprovedfordisease: [Disease] @relation(name: "isApprovedForDisease", direction: OUT) isevaluating: [TherapeuticMolecule] @relation(name: "isEvaluating", direction: OUT) }

type Event_FDAAdvisoryPanel { _id: Long! AlternateNames: String! CreationDate: String! Description: String! FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! }

type Event_FDAApproval { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! isapprovedfordisease: [Disease] @relation(name: "isApprovedForDisease", direction: OUT) isforindication: [DiseaseIndication] @relation(name: "isForIndication", direction: OUT) isForIndication_rel: [isForIndication] hasrelatedclinicaltrialsrecord: [ClinicalTrial] @relation(name: "hasRelatedClinicalTrialsRecord", direction: OUT) involvesdiagnostickit: [DiagnosticKit] @relation(name: "involvesDiagnosticKit", direction: OUT) involvesDiagnosticKit_rel: [involvesDiagnosticKit] }

type Event_FDAINDFiling { _id: Long! AlternateNames: String! CreationDate: String! Description: String! EventDate: String FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! isevaluating: [TherapeuticMolecule] @relation(name: "isEvaluating", direction: OUT) hasoutcome: [EventOutcome] @relation(name: "hasOutcome", direction: OUT) }

type FDAPDFUA_Prediction { _id: Long! AlternateNames: String! CreationDate: String! Description: String! FID: Int! HomePage: String! ModificationDate: String! Name: String! Type: String! hasadateplanned: [Date] @relation(name: "hasADatePlanned", direction: OUT) hasaquarterplanned: [Date] @relation(name: "hasAQuarterPlanned", direction: OUT) }

type Event_FDANDAFiling { _id: Long! AlternateNames: String! CreationDate: S

INFO :: Initializing your Neo4j Schema

INFO :: This may take a few moments depending on the size of your DB

RelID :isStartedBy for label set FundingSource,Organization has > 1 origin type (Company,Organization); skipping RelID :isFundedBy for label set FundingSource,Organization has > 1 origin type (Company,Event,InitialPublicOffering,NewPrivateFinancing,Organization); skipping

RelID :involvesCompany for label set Acquisition,Event has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping RelID :hasADate for label set Acquisition,Event has > 1 target type (ClinicalTrial,Date); skipping

RelID :involvesTherapeuticMolecule for label set Acquisition,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :involvesTherapeuticMolecule for label set BreakThroughTherapy,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping RelID :indicatedForDisease for label set BreakThroughTherapy,Event has > 1 target type (DevelopmentStage,Disease); skipping

RelID :involvesCompany for label set CFDAApproval,Event has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping

RelID :involvesCompany for label set ClinicalTrialInitiation,Event has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping

RelID :isInDevelopmentStage for label set ClinicalTrialInitiation,Event has > 1 target type (Date,DevelopmentStage); skipping RelID :hasADate for label set ClinicalTrialInitiation,Event has > 1 target type (ClinicalTrial,Date); skipping

RelID :involvesTherapeuticMolecule for label set ClinicalTrialInitiation,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :indicatedForDisease for label set ClinicalTrialInitiation,Event has > 1 target type (DevelopmentStage,Disease); skipping

RelID :isAssessingIndicationIn for label set ClinicalTrialNamed,Event has > 1 target type (Disease,DiseaseIndication); skipping RelID :hasADate for label set ClinicalTrialNamed,Event has > 1 target type (ClinicalTrial,Date); skipping

RelID :involvesTherapeuticMolecule for label set ClinicalTrialNamed,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping RelID :isPlannedForByCompany for label set ClinicalTrialNamed,Event has > 1 target type (Company,Organization); skipping RelID :indicatedForDisease for label set ClinicalTrialNamed,Event has > 1 target type (DevelopmentStage,Disease); skipping

RelID :isAssessingIndicationIn for label set ClinicalTrialPhase,Event has > 1 target type (Disease,DiseaseIndication); skipping

RelID :hasADate for label set ClinicalTrialPhase,Event has > 1 target type (ClinicalTrial,Date); skipping RelID :involvesTherapeuticMolecule for label set ClinicalTrialPhase,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping RelID :isPlannedForByCompany for label set ClinicalTrialPhase,Event has > 1 target type (Company,Organization); skipping RelID :indicatedForDisease for label set ClinicalTrialPhase,Event has > 1 target type (DevelopmentStage,Disease); skipping

RelID :isAssessingIndicationIn for label set ClinicalTrialPlan,Event has > 1 target type (Disease,DiseaseIndication); skipping

RelID :involvesTherapeuticMolecule for label set ClinicalTrialPlan,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :isPlannedForByCompany for label set ClinicalTrialPlan,Event has > 1 target type (Company,Organization); skipping RelID :indicatedForDisease for label set ClinicalTrialPlan,Event has > 1 target type (DevelopmentStage,Disease); skipping

RelID :wasPlannedForByCompany for label set ClinicalTrialPlan,Event has > 1 target type (Company,Organization); skipping

RelID :involvesCompany for label set ClinicalTrialResult,Event has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping RelID :isInDevelopmentStage for label set ClinicalTrialResult,Event has > 1 target type (Date,DevelopmentStage); skipping

RelID :isAssessingIndicationIn for label set ClinicalTrialResult,Event has > 1 target type (Disease,DiseaseIndication); skipping RelID :hasADate for label set ClinicalTrialResult,Event has > 1 target type (ClinicalTrial,Date); skipping RelID :involvesTherapeuticMolecule for label set ClinicalTrialResult,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :isPlannedForByCompany for label set ClinicalTrialResult,Event has > 1 target type (Company,Organization); skipping RelID :indicatedForDisease for label set ClinicalTrialResult,Event has > 1 target type (DevelopmentStage,Disease); skipping

RelID :involvesCompany for label set Collaboration,Event has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping RelID :isInDevelopmentStage for label set Collaboration,Event has > 1 target type (Date,DevelopmentStage); skipping RelID :isAssessingIndicationIn for label set Collaboration,Event has > 1 target type (Disease,DiseaseIndication); skipping

RelID :hasADate for label set Collaboration,Event has > 1 target type (ClinicalTrial,Date); skipping RelID :involvesTherapeuticMolecule for label set Collaboration,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping RelID :indicatedForDisease for label set Collaboration,Event has > 1 target type (DevelopmentStage,Disease); skipping RelID :involves for label set Collaboration,Event has > 1 target type (Modality,MolecularTarget); skipping RelID :involvesResearchOrganization for label set Collaboration,Event has > 1 target type (Organization,ResearchOrganization); skipping RelID :involvesTherapeuticMoleculeClass for label set Collaboration,Event has > 1 target type (TherapeuticMolecule,TherapeuticMoleculeClass); skipping

RelID :isApprovedForIndication for label set EMEAApproval,Event has > 1 target type (Disease,DiseaseIndication); skipping

RelID :involvesCompany for label set EMEAApproval,Event has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping RelID :isAssessingIndicationIn for label set EMEAApproval,Event has > 1 target type (Disease,DiseaseIndication); skipping RelID :hasADate for label set EMEAApproval,Event has > 1 target type (ClinicalTrial,Date); skipping RelID :involvesTherapeuticMolecule for label set EMEAApproval,Event has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :isApprovedForIndication for label set Event,FDAApproval has > 1 target type (Disease,DiseaseIndication); skipping

RelID :involvesCompany for label set Event,FDAApproval has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping RelID :hasADate for label set Event,FDAApproval has > 1 target type (ClinicalTrial,Date); skipping RelID :involvesTherapeuticMolecule for label set Event,FDAApproval has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping RelID :indicatedForDisease for label set Event,FDAApproval has > 1 target type (DevelopmentStage,Disease); skipping

RelID :isAssessingIndicationIn for label set Event,FDAINDFiling has > 1 target type (Disease,DiseaseIndication); skipping

RelID :hasADate for label set Event,FDAINDFiling has > 1 target type (ClinicalTrial,Date); skipping

RelID :isPlannedForByCompany for label set Event,FDAINDFiling has > 1 target type (Company,Organization); skipping

RelID :indicatedForDisease for label set Event,FDAINDFiling has > 1 target type (DevelopmentStage,Disease); skipping RelID :wasPlannedForByCompany for label set Event,FDAINDFiling has > 1 target type (Company,Organization); skipping

RelID :isPlannedForByCompany for label set FDAPDFUA,Prediction has > 1 target type (Company,Organization); skipping

RelID :isAssessingIndicationIn for label set Event,FDANDAFiling has > 1 target type (Disease,DiseaseIndication); skipping

RelID :hasADate for label set Event,FDANDAFiling has > 1 target type (ClinicalTrial,Date); skipping

RelID :involvesTherapeuticMolecule for label set Event,FDANDAFiling has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :indicatedForDisease for label set Event,FDANDAFiling has > 1 target type (DevelopmentStage,Disease); skipping

RelID :isAssessingIndicationIn for label set Event,FDAPriorityReview has > 1 target type (Disease,DiseaseIndication); skipping

RelID :involvesTherapeuticMolecule for label set Event,FDAPriorityReview has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :isPlannedForByCompany for label set Event,FDAPriorityReview has > 1 target type (Company,Organization); skipping RelID :indicatedForDisease for label set Event,FDAPriorityReview has > 1 target type (DevelopmentStage,Disease); skipping

RelID :wasPlannedForByCompany for label set Event,FDAPriorityReview has > 1 target type (Company,Organization); skipping RelID :isReceivedByCompany for label set Event,FDAPriorityReview has > 1 target type (Company,Organization); skipping

RelID :hasADate for label set Event,FDASPA has > 1 target type (ClinicalTrial,Date); skipping

RelID :involvesCompany for label set Event,InitialPublicOffering has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping

RelID :isFundedBy for label set Event,InitialPublicOffering has > 1 target type (Company,Event,FundingSource,NewPrivateFinancing,Organization); skipping

RelID :involvesCompany for label set Event,MeetingPresentation has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping

RelID :hasTopic for label set Event,MeetingPresentation has > 1 target type (BiologicalStructure,Disease,MolecularTarget,TherapeuticMolecule); skipping

RelID :involvesCompany for label set Event,NewPrivateFinancing has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping RelID :hasADate for label set Event,NewPrivateFinancing has > 1 target type (ClinicalTrial,Date); skipping

RelID :isFundedBy for label set Event,NewPrivateFinancing has > 1 target type (Company,Event,FundingSource,NewPrivateFinancing,Organization); skipping

RelID :involvesCompany for label set Event,NewPublicOffering has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping

RelID :hasADate for label set Event,OrphanDrugDesignation has > 1 target type (ClinicalTrial,Date); skipping

RelID :hasADate for label set Event,OtherApproval has > 1 target type (ClinicalTrial,Date); skipping

RelID :hasADate for label set Event,Patent has > 1 target type (ClinicalTrial,Date); skipping

RelID :involvesTherapeuticMolecule for label set Event,Patent has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :involvesCompany for label set Event,Personnel has > 1 origin type (Acquisition,CFDAApproval,ClinicalTrialInitiation,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAApproval,InitialPublicOffering,MeetingPresentation,NewPrivateFinancing,NewPublicOffering,PressUpdate,QuarterlyEarnings); skipping

RelID :involvesCompany for label set Event,PressUpdate has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping

RelID :involvesCompany for label set Event,QuarterlyEarnings has > 1 target type (Company,Date,Event,NewPrivateFinancing,Organization,Personnel); skipping RelID :hasADate for label set Event,QuarterlyEarnings has > 1 target type (ClinicalTrial,Date); skipping

RelID :hasProductSalesFor for label set Event,QuarterlyEarnings has > 1 target type (Event,QuarterlyEarnings,TherapeuticMolecule,TherapeuticProduct); skipping

RelID :inhibitsBioProcess for label set BiologicalProcess has > 1 origin type (MolecularTarget,TherapeuticMolecule); skipping RelID :activatesBioProcess for label set BiologicalProcess has > 1 origin type (MolecularTarget,TherapeuticMolecule,TherapeuticMoleculeClass); skipping RelID :targetsBioProcess for label set BiologicalProcess has > 1 origin type (TherapeuticMolecule,TherapeuticMoleculeClass); skipping RelID :involvedInBioProcess for label set BiologicalProcess has > 1 origin type (ClinicalTrial,MolecularTarget); skipping RelID :worksOn for label set BiologicalProcess has > 1 origin type (Company,Organization); skipping

RelID :hasTopic for label set BiologicalStructure has > 1 origin type (Event,MeetingPresentation); skipping

RelID :hasLocationInCity for label set City has > 1 origin type (Company,FundingSource,Organization,ResearchOrganization); skipping RelID :hasSecondaryLocationInCity for label set City has > 1 origin type (Company,FundingSource,Organization); skipping

RelID :isInDevelopmentStage for label set ClinicalTrial has > 1 target type (Date,DevelopmentStage); skipping

RelID :sponsoredByCompany for label set ClinicalTrial has > 1 target type (Company,Organization); skipping RelID :usesTherapeuticMolecule for label set ClinicalTrial has > 1 target type (ExperimentalTechnique,TherapeuticMolecule); skipping RelID :isEvaluatingDisease for label set ClinicalTrial has > 1 target type (BiologicalProcess,Disease); skipping

RelID :hasADate for label set ClinicalTrial has > 1 origin type (Acquisition,ClinicalTrialInitiation,ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAApproval,FDAINDFiling,FDANDAFiling,FDASPA,NewPrivateFinancing,OrphanDrugDesignation,OtherApproval,Patent,QuarterlyEarnings); skipping

RelID :hasRelatedClinicalTrialsRecord for label set ClinicalTrial has > 1 origin type (ClinicalTrialInitiation,ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialResult,ClinicalTrialSuspension,Event,FDAApproval,FDANDAFiling,MeetingPresentation); skipping

RelID :isDerivedFromEvent for label set CompanyGoal has > 1 target type (Event,QuarterlyEarnings); skipping

RelID :hasRelatedEvent for label set CompanyGoal has > 1 target type (Event,FDANDAFiling); skipping

RelID :belongsToCountry for label set Country has > 1 origin type (City,State); skipping

RelID :typeOf for label set Date has > 1 target type (DateClass,TherapeuticMolecule); skipping

RelID :involvesCompany for label set Date has > 1 origin type (Acquisition,CFDAApproval,ClinicalTrialInitiation,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAApproval,InitialPublicOffering,MeetingPresentation,NewPrivateFinancing,NewPublicOffering,PressUpdate,QuarterlyEarnings); skipping RelID :isInDevelopmentStage for label set Date has > 1 origin type (ClinicalTrial,ClinicalTrialInitiation,ClinicalTrialResult,Collaboration,Event); skipping

RelID :hasADate for label set Date has > 1 origin type (Acquisition,ClinicalTrialInitiation,ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAApproval,FDAINDFiling,FDANDAFiling,FDASPA,NewPrivateFinancing,OrphanDrugDesignation,OtherApproval,Patent,QuarterlyEarnings); skipping RelID :hasFoundationYear for label set Date has > 1 origin type (Company,Organization); skipping RelID :hasStartDate for label set Date has > 1 origin type (Assignment,ClinicalTrial); skipping

RelID :hasADatePlanned for label set Date has > 1 origin type (ClinicalTrialInitiation,Event,FDAPDFUA,FDAPriorityReview,Prediction); skipping

RelID :hasClosingYear for label set Date has > 1 origin type (Company,Organization); skipping

RelID :hasAQuarterPlanned for label set Date has > 1 origin type (ClinicalTrialInitiation,FDAPDFUA,Prediction); skipping

RelID :hasDateRevised for label set Date has > 1 origin type (ClinicalTrialInitiation,Prediction); skipping

RelID :typeOf for label set DateClass has > 1 origin type (Date,TherapeuticMolecule); skipping

RelID :isInDevelopmentStage for label set DevelopmentStage has > 1 origin type (ClinicalTrial,ClinicalTrialInitiation,ClinicalTrialResult,Collaboration,Event); skipping

RelID :indicatedForDisease for label set DevelopmentStage has > 1 origin type (BreakThroughTherapy,ClinicalTrialInitiation,ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Collaboration,Event,FDAApproval,FDAINDFiling,FDANDAFiling,FDAPriorityReview); skipping

RelID :involvesDiagnosticKit for label set DiagnosticKit has > 1 origin type (Event,FDAApproval); skipping

RelID :isApprovedForDisease for label set Disease has > 1 origin type (EMEAApproval,Event,FDAApproval,TherapeuticMolecule); skipping RelID :isApprovedForIndication for label set Disease has > 1 origin type (EMEAApproval,Event,FDAApproval,TherapeuticMolecule,TherapeuticProduct); skipping

RelID :isAssessingIndicationIn for label set Disease has > 1 origin type (ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAINDFiling,FDANDAFiling,FDAPriorityReview); skipping

RelID :indicatedForDisease for label set Disease has > 1 origin type (BreakThroughTherapy,ClinicalTrialInitiation,ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Collaboration,Event,FDAApproval,FDAINDFiling,FDANDAFiling,FDAPriorityReview); skipping RelID :involvesDisease for label set Disease has > 1 origin type (CompanyGoal,Event,OrphanDrugDesignation); skipping

RelID :hasTopic for label set Disease has > 1 origin type (Event,MeetingPresentation); skipping

RelID :isApprovedForIndication for label set DiseaseIndication has > 1 origin type (EMEAApproval,Event,FDAApproval,TherapeuticMolecule,TherapeuticProduct); skipping RelID :isAssessingIndicationIn for label set DiseaseIndication has > 1 origin type (ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAINDFiling,FDANDAFiling,FDAPriorityReview); skipping

RelID :isSeekingIndication for label set DiseaseIndication has > 1 origin type (ClinicalTrialNamed,Event,TherapeuticMolecule); skipping RelID :isForIndication for label set DiseaseIndication has > 1 origin type (Event,FDAApproval); skipping

RelID :hasOutcome for label set EventOutcome has > 1 origin type (ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Event,FDAINDFiling,FDAPriorityReview,QuarterlyEarnings); skipping

RelID :hasConcept for label set KnowledgeUnit has > 1 target type (BiologicalProcess,BiologicalStructure,ExperimentalTechnique,MolecularTarget,Symptom,Syndrome,TherapeuticMolecule); skipping

RelID :involves for label set Modality has > 1 origin type (Collaboration,Event); skipping

RelID :involvesTherapeuticMolecule for label set MolecularTarget has > 1 origin type (Acquisition,BreakThroughTherapy,ClinicalTrialInitiation,ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAApproval,FDANDAFiling,FDAPriorityReview,Patent); skipping RelID :involves for label set MolecularTarget has > 1 origin type (Collaboration,Event); skipping

RelID :involvesMolecularTarget for label set MolecularTarget has > 1 origin type (BiologicalProcess,BiologicalState,Collaboration,Event,Patent,TechnologyPlatform); skipping RelID :hasTopic for label set MolecularTarget has > 1 origin type (Event,MeetingPresentation); skipping RelID :isRelatedToTarget for label set MolecularTarget has > 1 origin type (Event,PressUpdate); skipping

RelID :typeOfPathway for label set Pathway has > 1 target type (Pathway,PathwayClass); skipping

RelID :inhibitsPathway for label set Pathway has > 1 origin type (MolecularTarget,TherapeuticMolecule); skipping

RelID :activatesPathway for label set Pathway has > 1 origin type (MolecularTarget,TherapeuticMolecule); skipping RelID :involvesPathway for label set Pathway has > 1 origin type (Event,Patent); skipping

RelID :hasRoleInOrganization for label set Person has > 1 target type (Company,Organization); skipping RelID :isMentionedOnPublication for label set Person has > 1 target type (Event,PressUpdate,SourceReference); skipping RelID :involvesAPerson for label set Person has > 1 origin type (Event,Personnel); skipping RelID :developedByOrganization for label set ScienceProject has > 1 target type (Company,Organization,ResearchOrganization); skipping

RelID :hasKeyInformation for label set ScoreCard has > 1 target type (Acquisition,BusinessReview,Event,MeetingPresentation,PressUpdate); skipping RelID :mentionsConcept for label set SourceReference has > 1 target type (BiologicalProcess,BiologicalStructure,Disease,MolecularTarget); skipping RelID :occursInSourceReference for label set SourceReference has > 1 origin type (BiologicalProcess,BiologicalStructure,ClinicalTrial,ClinicalTrialNamed,ClinicalTrialResult,Collaboration,Disease,Event,Modality,MolecularTarget,MolecularTargetClass,Pathway,TechnologyPlatform,TherapeuticMolecule); skipping RelID :occursInTitleOfSourceReference for label set SourceReference has > 1 origin type (Disease,Modality,MolecularTarget,TherapeuticMolecule,TherapeuticMoleculeClass); skipping RelID :occursInAbstractOfSourceReference for label set SourceReference has > 1 origin type (BiologicalProcess,BiologicalStructure,Disease,ExperimentalTechnique,MolecularTarget,Pathway,TherapeuticMolecule); skipping

RelID :subsidiaryOf for label set Company,Organization has > 1 target type (Company,Organization); skipping RelID :acquiredBy for label set Company,Organization has > 1 target type (Company,Organization); skipping

RelID :collaboratesWithCompany for label set Company,Organization has > 1 target type (Company,Organization); skipping RelID :isStartedBy for label set Company,Organization has > 1 target type (Company,FundingSource,Organization,ResearchOrganization); skipping RelID :isFundedBy for label set Company,Organization has > 1 target type (Company,Event,FundingSource,NewPrivateFinancing,Organization); skipping

RelID :developedByCompany for label set Company,Organization has > 1 origin type (TechnologyPlatform,TherapeuticMolecule); skipping RelID :isLicensedFrom for label set Company,Organization has > 1 origin type (TechnologyPlatform,TherapeuticMolecule); skipping

RelID :involvesCompany for label set Company,Organization has > 1 origin type (Acquisition,CFDAApproval,ClinicalTrialInitiation,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAApproval,InitialPublicOffering,MeetingPresentation,NewPrivateFinancing,NewPublicOffering,PressUpdate,QuarterlyEarnings); skipping

RelID :isPlannedForByCompany for label set Company,Organization has > 1 origin type (ClinicalTrialInitiation,ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Event,FDAINDFiling,FDAPDFUA,FDAPriorityReview,Prediction); skipping

RelID :wasPlannedForByCompany for label set Company,Organization has > 1 origin type (ClinicalTrialPlan,Event,FDAINDFiling,FDAPriorityReview); skipping

RelID :isReceivedByCompany for label set Company,Organization has > 1 origin type (Event,FDAPriorityReview); skipping

RelID :developedByCompany for label set TechnologyPlatform has > 1 target type (Company,Organization); skipping RelID :isLicensedFrom for label set TechnologyPlatform has > 1 target type (Company,Organization,ResearchOrganization); skipping

RelID :involvesTechnologyPlatform for label set TechnologyPlatform has > 1 origin type (Acquisition,Collaboration,Event); skipping

RelID :worksInArea for label set TherapeuticArea has > 1 origin type (Company,Organization); skipping

RelID :hasPrimaryModality for label set TherapeuticMolecule has > 1 target type (BiologicalProcess,ExperimentalTechnique,Modality); skipping RelID :noLongerDevelopedByCompany for label set TherapeuticMolecule has > 1 target type (Company,Organization); skipping RelID :isIndicatedForDisease for label set TherapeuticMolecule has > 1 target type (BiologicalProcess,Disease); skipping

RelID :developedByCompany for label set TherapeuticMolecule has > 1 target type (Company,Organization); skipping RelID :noLongerDevelopedWithCollaborator for label set TherapeuticMolecule has > 1 target type (Company,Organization); skipping

RelID :typeOf for label set TherapeuticMolecule has > 1 target type (DateClass,TherapeuticMolecule); skipping

RelID :developedWithCollaborator for label set TherapeuticMolecule has > 1 target type (Company,Organization); skipping RelID :originallyDevelopedByCompany for label set TherapeuticMolecule has > 1 target type (Company,Organization,ResearchOrganization); skipping RelID :isApprovedForIndication for label set TherapeuticMolecule has > 1 target type (Disease,DiseaseIndication); skipping

RelID :isRelatedTo for label set TherapeuticMolecule has > 1 target type (MolecularTarget,TherapeuticMolecule); skipping

RelID :isLicensedFrom for label set TherapeuticMolecule has > 1 target type (Company,Organization,ResearchOrganization); skipping RelID :isLicensedTo for label set TherapeuticMolecule has > 1 target type (Company,Organization); skipping

RelID :developedThroughAcquisitionByCompany for label set TherapeuticMolecule has > 1 target type (Company,Organization,ResearchOrganization); skipping

RelID :isDerivedFromTechnologyPlatform for label set TherapeuticMolecule has > 1 target type (SourceReference,TechnologyPlatform); skipping

RelID :developedThroughLicensingByCompany for label set TherapeuticMolecule has > 1 target type (Company,Organization); skipping

RelID :isEvaluating for label set TherapeuticMolecule has > 1 origin type (ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAINDFiling,FDAPriorityReview); skipping RelID :involvesTherapeuticMolecule for label set TherapeuticMolecule has > 1 origin type (Acquisition,BreakThroughTherapy,ClinicalTrialInitiation,ClinicalTrialNamed,ClinicalTrialPhase,ClinicalTrialPlan,ClinicalTrialResult,Collaboration,EMEAApproval,Event,FDAApproval,FDANDAFiling,FDAPriorityReview,Patent); skipping

RelID :hasProductSalesFor for label set TherapeuticMolecule has > 1 origin type (Event,QuarterlyEarnings); skipping RelID :hasTopic for label set TherapeuticMolecule has > 1 origin type (Event,MeetingPresentation); skipping

RelID :involvesTherapeuticMoleculeClass for label set TherapeuticMolecule has > 1 origin type (Collaboration,Event); skipping RelID :isRelatedToTherapeuticMolecule for label set TherapeuticMolecule has > 1 origin type (Event,PressUpdate); skipping

RelID :involvesTherapeuticMoleculeClass for label set TherapeuticMoleculeClass has > 1 origin type (Collaboration,Event); skipping

RelID :isApprovedForIndication for label set TherapeuticProduct has > 1 target type (Disease,DiseaseIndication); skipping RelID :isProducedByCompany for label set TherapeuticProduct has > 1 target type (Company,Organization); skipping

RelID :hasProductSalesFor for label set TherapeuticProduct has > 1 origin type (Event,QuarterlyEarnings); skipping

RelID :hasProductRoyaltyFor for label set TherapeuticProduct has > 1 origin type (Event,QuarterlyEarnings); skipping

RelID :collaboratesWithCompany for label set Organization,ResearchOrganization has > 1 target type (Company,Organization); skipping RelID :belongsWithOrganization for label set Organization,ResearchOrganization has > 1 target type (Organization,ResearchOrganization); skipping RelID :collaboratesWithResearchOrganization for label set Organization,ResearchOrganization has > 1 target type (Organization,ResearchOrganization); skipping RelID :isLicensedFrom for label set Organization,ResearchOrganization has > 1 origin type (TechnologyPlatform,TherapeuticMolecule); skipping RelID :isStartedBy for label set Organization,ResearchOrganization has > 1 origin type (Company,Organization); skipping RelID :involvesResearchOrganization for label set Organization,ResearchOrganization has > 1 origin type (Collaboration,Event); skipping

RelID :hasOutcomeType for label set EventOutcomeType has > 1 origin type (ClinicalTrialPhase,ClinicalTrialResult,Event); skipping

RelID :isPlannedForByCompany for label set ClinicalTrialInitiation,Prediction has > 1 target type (Company,Organization); skipping

Relationship Neo4jRelationship { id: ':hasPrimaryModality', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'hasPrimaryModality', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':typeOfClass', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: false, graphQLType: 'String' } }, relType: 'typeOfClass', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':isIndicatedForDisease', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, RankInDisease: { propertyName: 'RankInDisease', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, RankInTarget: { propertyName: 'RankInTarget', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, DevelopmentStage: { propertyName: 'DevelopmentStage', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, Synopsis: { propertyName: 'Synopsis', propertyTypes: [Array], mandatory: false, graphQLType: 'String' } }, relType: 'isIndicatedForDisease', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':developedByCompany', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'developedByCompany', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':inhibitsBioProcess', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'inhibitsBioProcess', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':isApprovedForDisease', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, RankInDisease: { propertyName: 'RankInDisease', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, RankInTarget: { propertyName: 'RankInTarget', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, DevelopmentStage: { propertyName: 'DevelopmentStage', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, Synopsis: { propertyName: 'Synopsis', propertyTypes: [Array], mandatory: false, graphQLType: 'String' } }, relType: 'isApprovedForDisease', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':activatesTarget', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'activatesTarget', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported Relationship Neo4jRelationship { id: ':activatesBioProcess', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'activatesBioProcess', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported Relationship Neo4jRelationship { id: ':targetsBioProcess', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'targetsBioProcess', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':involvedInBioProcess', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'involvedInBioProcess', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':inhibitsPathway', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'inhibitsPathway', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':activatesPathway', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'activatesPathway', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':typeOfPathway', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'typeOfPathway', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':typeOf', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'typeOf', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':originallyDevelopedByCompany', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'originallyDevelopedByCompany', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':isApprovedForIndication', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'isApprovedForIndication', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':isRelatedToDisease', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'isRelatedToDisease', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':isRelatedTo', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'isRelatedTo', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':isLicensedFrom', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } }, relType: 'isLicensedFrom', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':involvesCompany', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, UpFrontPayment: { propertyName: 'UpFrontPayment', propertyTypes: [Array], mandatory: false, graphQLType: 'Float' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, MilestonePayment: { propertyName: 'MilestonePayment', propertyTypes: [Array], mandatory: false, graphQLType: 'Float' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: false, graphQLType: 'String' }, FinancingValue: { propertyName: 'FinancingValue', propertyTypes: [Array], mandatory: false, graphQLType: 'Float' } }, relType: 'involvesCompany', links: [ { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] }, { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

Relationship Neo4jRelationship { id: ':isEvaluating', type: 'relationship', properties: { FID: { propertyName: 'FID', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, CreationDate: { propertyName: 'CreationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, ModificationDate: { propertyName: 'ModificationDate', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID2: { propertyName: 'FID2', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, FID1: { propertyName: 'FID1', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, AssertionURL: { propertyName: 'AssertionURL', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' }, Relationship: { propertyName: 'Relationship', propertyTypes: [Array], mandatory: true, graphQLType: 'String!' } },

ed42311 commented 4 years ago

Whew! Nice! Alright I'll take a look. Thanks for sharing @wolfgang-ldc

johnymontana commented 4 years ago

I was able to reproduce this using this Cypher statement to populate a database:

UNWIND range(0,120) AS i
CALL apoc.create.node(['a'+toString(i)], {foobar: i}) YIELD node AS n1
CALL apoc.create.node(['a'+toString(i+1)], {foobaz: i+1}) YIELD node AS n2
CALL apoc.create.relationship(n1, 'foobarzrel', {},n2 ) YIELD rel
CALL apoc.create.relationship(n1, 'r'+toString(i), {},n2 ) YIELD rel AS rel2
RETURN COUNT(*)

Then running inferSchema in GraphQL Architect. In the editor after 416 lines the GraphQL type defs are cutoff here:

type a50 {
   _id: Long!
   foobar: Int
   foobaz: Int
   r50: [a51] @relation(name: "r50", direction: OUT)
   a49s: [a49] @rela

resulting in a GraphQL syntax error.

I'm guessing that there is a limit in the number of characters being picked up from the executeNode process actually runningthe inferSchema process. Because of the large number of "multivalent" relationships in the schema the inferSchema process produces a large number of info log lines along with the schema.

ed42311 commented 4 years ago

hmmm... @johnymontana

unable to reproduce

  1. New local graph v4.1.1(latest)
  2. Install APOC
  3. Ran:
    UNWIND range(0,120) AS i
    CALL apoc.create.node(['a'+toString(i)], {foobar: i}) YIELD node AS n1
    CALL apoc.create.node(['a'+toString(i+1)], {foobaz: i+1}) YIELD node AS n2
    CALL apoc.create.relationship(n1, 'foobarzrel', {},n2 ) YIELD rel
    CALL apoc.create.relationship(n1, 'r'+toString(i), {},n2 ) YIELD rel AS rel2
    RETURN COUNT(*)

    in neo4j browser

  4. Open Architect
  5. press infer schema ( which is telling, because the schema should be loaded )
    • types stay the same in the editor
    • outputs a bunch of errors in the UI log
      
      INFO :: Initializing your Neo4j Schema

INFO :: This may take a few moments depending on the size of your DB

ERR :: RelID :foobarzrel for label set a0 has > 1 target type (a1,a10,a100,a11,a12,a13,a14,a15,a16,a17,a18,a19,a2,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a3,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a4,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a5,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a6,a60,a61,a62,a63,a64,a65,a66,a67,a68,a69,a7,a70,a71,a72,a73,a74,a75,a76,a77,a78,a79,a8,a80,a81,a82,a83,a84,a85,a86,a87,a88,a89,a9,a90,a91,a92,a93,a94,a95,a96,a97,a98,a99); skipping

ERR :: RelID :foobarzrel for label set a1 has > 1 target type (a1,a10,a100,a11,a12,a13,a14,a15,a16,a17,a18,a19,a2,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a3,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a4,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a5,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a6,a60,a61,a62,a63,a64,a65,a66,a67,a68,a69,a7,a70,a71,a72,a73,a74,a75,a76,a77,a78,a79,a8,a80,a81,a82,a83,a84,a85,a86,a87,a88,a89,a9,a90,a91,a92,a93,a94,a95,a96,a97,a98,a99); skipping

this goes on for n times...

ERR :: RelID :foobarzrel for label set a100 has > 1 origin type (a0,a1,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a2,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a3,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a4,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a5,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a6,a60,a61,a62,a63,a64,a65,a66,a67,a68,a69,a7,a70,a71,a72,a73,a74,a75,a76,a77,a78,a79,a8,a80,a81,a82,a83,a84,a85,a86,a87,a88,a89,a9,a90,a91,a92,a93,a94,a95,a96,a97,a98,a99); skipping

ERR :: Relationship Neo4jRelationship { id: ':foobarzrel', type: 'relationship', properties: {}, relType: 'foobarzrel', links: [ { from: [Array], to: [Array] }, ...agian n times { from: [Array], to: [Array] } ] } is not univalent and is not yet supported

SUCCESS :: Received type defs Type Defs Saved INFO :: Infer Schema Done


#### Exploratory

*Restarting Architect* yields an editor with:
```grahpql

# These type definitions have been generated from your Neo4j database.

# Here are some Neo4j specific scalars that you can use to map to native Neo4j types:
scalar Point
scalar Date
scalar DateTime
scalar Long

# Edit these GraphQL type definitions below to change your GraphQL API
# You can add custom logic defined with Cypher using the @cypher GraphQL schema directive
# You can refer to the docs at https://grandstack.io
type a0 {
   _id: Long!
   foobar: Int!
   r0: [a1] @relation(name: "r0", direction: OUT)
}

type a1 {
   _id: Long!
   foobar: Int
   foobaz: Int
   r1: [a2] @relation(name: "r1", direction: OUT)
   a0s: [a0] @relation(name: "r0", direction: IN)
}

type n....

type a121 {
   _id: Long!
   foobaz: Int!
   a120s: [a120] @relation(name: "r120", direction: IN)
}

and like a lot of empty lines...