diff --git a/playground.fsx b/playground.fsx index e361e05..31890a0 100644 --- a/playground.fsx +++ b/playground.fsx @@ -32,26 +32,26 @@ type OboOntology = FormatVersion : string DataVersion : string option Ontology : string option - Date : System.DateTime option + Date : DateTime option SavedBy : string option AutoGeneratedBy : string option Subsetdefs : string list - Imports : string list - Synonymtypedefs : TermSynonym list // rethink type, maybe create a mother type (Union?) - IdSpaces : string list // rethink as own Record type + Imports : string list // needs its own type (Record?) + Synonymtypedefs : string list // rethink type, maybe create a mother type (Union? Maybe Record'd be better) + Idspaces : string list // rethink as own Record type DefaultRelationshipIdPrefix : string option - IdMappings : TermRelation list // rethink: maybe a new record? or plain string option? + IdMappings : string list // rethink: maybe a new record? or TermRelation? Remarks : string list TreatXrefsAsEquivalents : string list - TreatXrefsAsGenusDifferentias : TermRelation list // rethink: maybe a new record? or plain string option? - TreatXrefsAsRelationships : string list // maybe better as its own (record/union?) type + TreatXrefsAsGenusDifferentias : string list // rethink: maybe a new record? or plain string option? + TreatXrefsAsRelationships : string list // maybe better as its own (Record/Union?) type TreatXrefsAsIsAs : string list RelaxUniqueIdentifierAssumptionForNamespaces : string list RelaxUniqueLabelAssumptionForNamespaces : string list } /// Creates an OboOntology based on the given parameters. - static member create terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces = + static member create terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idspaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces = { Terms = terms TypeDefs = typedefs @@ -64,7 +64,7 @@ type OboOntology = Subsetdefs = subsetdefs Imports = imports Synonymtypedefs = synonymtypedefs - IdSpaces = idSpaces + Idspaces = idspaces DefaultRelationshipIdPrefix = defaultRelationshipIdPrefix IdMappings = idMappings Remarks = remarks @@ -77,7 +77,7 @@ type OboOntology = } /// Creates an OboOntology based on the given arguments. - static member Create(terms, typedefs, formatVersion, ?DataVersion, ?Ontology, ?Date, ?SavedBy, ?AutoGeneratedBy, ?Subsetdefs, ?Imports, ?Synonymtypedefs, ?IdSpaces, ?DefaultRelationshipIdPrefix, ?IdMappings, ?Remarks, ?TreatXrefsAsEquivalents, ?TreatXrefsAsGenusDifferentias, ?TreatXrefsAsRelationships, ?TreatXrefsAsIsAs, ?RelaxUniqueIdentifierAssumptionForNamespaces, ?RelaxUniqueLabelAssumptionForNamespaces) = { + static member Create(terms, typedefs, formatVersion, ?DataVersion, ?Ontology, ?Date, ?SavedBy, ?AutoGeneratedBy, ?Subsetdefs, ?Imports, ?Synonymtypedefs, ?Idspaces, ?DefaultRelationshipIdPrefix, ?IdMappings, ?Remarks, ?TreatXrefsAsEquivalents, ?TreatXrefsAsGenusDifferentias, ?TreatXrefsAsRelationships, ?TreatXrefsAsIsAs, ?RelaxUniqueIdentifierAssumptionForNamespaces, ?RelaxUniqueLabelAssumptionForNamespaces) = { Terms = terms TypeDefs = typedefs FormatVersion = formatVersion @@ -89,7 +89,7 @@ type OboOntology = Subsetdefs = defaultArg Subsetdefs [] Imports = defaultArg Imports [] Synonymtypedefs = defaultArg Synonymtypedefs [] - IdSpaces = defaultArg IdSpaces [] + Idspaces = defaultArg Idspaces [] DefaultRelationshipIdPrefix = DefaultRelationshipIdPrefix IdMappings = defaultArg IdMappings [] Remarks = defaultArg Remarks [] @@ -109,71 +109,94 @@ type OboOntology = /// Reads an OBO Ontology containing term and type def stanzas from lines. static member fromLines verbose (input : seq) = - let rxFormatVersion = createRegex RegexOptions.None @"format-version\s*:\s*(?.+)" - let rxDataVersion = createRegex RegexOptions.None @"(?:data-version|version)\s*:\s*(?.+)" - let rxOntology = createRegex RegexOptions.None @"ontology\s*:\s*(?.+)" - let rxDate = createRegex RegexOptions.None @"date\s*:\s*(?\d{2}:\d{2}:\d{4} \d{2}:\d{2})" - let rxSavedBy = createRegex RegexOptions.None @"saved-by\s*:\s*(?.+)" - let rxAutoGeneratedBy = createRegex RegexOptions.None @"auto-generated-by\s*:\s*(?.+)" + let rxFormatVersion = createRegex RegexOptions.None @"format-version\s*:\s*(?.+)" + let rxDataVersion = createRegex RegexOptions.None @"(?:data-version|version)\s*:\s*(?.+)" + let rxOntology = createRegex RegexOptions.None @"ontology\s*:\s*(?.+)" + let rxDate = createRegex RegexOptions.None @"date\s*:\s*(?\d{2}:\d{2}:\d{4} \d{2}:\d{2})" + let rxSavedBy = createRegex RegexOptions.None @"saved-by\s*:\s*(?.+)" + let rxAutoGeneratedBy = createRegex RegexOptions.None @"auto-generated-by\s*:\s*(?.+)" + let rxSubsetdef = createRegex RegexOptions.None @"subsetdef\s*:\s*(?.+)" + let rxImport = createRegex RegexOptions.None @"import\s*:\s*(?.+)" + let rxSynonymtypedef = createRegex RegexOptions.None @"synonymtypedef\s*:\s*(?.+)" + let rxIdspace = createRegex RegexOptions.None @"idspace\s*:\s*(?.+)" + let rxDefaultRelationshipIdPrefix = createRegex RegexOptions.None @"default-relationship-id-prefix\s*:\s*(?.+)" + let rxIdMapping = createRegex RegexOptions.None @"id-mapping\s*:\s*(?.+)" + let rxRemark = createRegex RegexOptions.None @"remark\s*:\s*(?.+)" + let rxTreatXrefsAsEquivalent = createRegex RegexOptions.None @"treat-xrefs-as-equivalent\s*:\s*(?.+)" + let rxTreatXrefsAsGenusDifferentia = createRegex RegexOptions.None @"treat-xrefs-as-genus-differentia\s*:\s*(?.+)" + let rxTreatXrefsAsRelationship = createRegex RegexOptions.None @"treat-xrefs-as-relationship\s*:\s*(?.+)" + let rxTreatXrefsAsIsA = createRegex RegexOptions.None @"treat-xrefs-as-is_a\s*:\s*(?.+)" + let rxRelaxUniqueIdentifierAssumptionForNamespace = createRegex RegexOptions.None @"relax-unique-identifier-assumption-for-namespace\s*:\s*(?.+)" + let rxRelaxUniqueLabelAssumptionForNamespace = createRegex RegexOptions.None @"relax-unique-label-assumption-for-namespace\s*:\s*(?.+)" let en = input.GetEnumerator() - let rec loop (en : System.Collections.Generic.IEnumerator) terms typedefs formatVersion (dataVersion : string option) ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces lineNumber = + let rec loop (en : System.Collections.Generic.IEnumerator) terms typedefs formatVersion (dataVersion : string option) ontology (date : DateTime option) (savedBy : string option) (autoGeneratedBy : string option) subsetdefs imports synonymtypedefs idSpaces (defaultRelationshipIdPrefix : string option) idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces lineNumber = match en.MoveNext() with | true -> match trimComment en.Current with | "[Term]" -> let lineNumber,parsedTerm = OboTerm.fromLines verbose en lineNumber "" "" false [] "" "" [] [] [] [] [] [] [] [] false [] [] [] false "" "" - loop en (parsedTerm :: terms) typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces lineNumber + loop en (parsedTerm :: terms) typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs treatXrefsAsRelationships treatXrefsAsGenusDifferentias relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces lineNumber | "[Typedef]" -> let lineNumber,parsedTypeDef = OboTypeDef.fromLines verbose en lineNumber "" "" "" "" [] [] false false false false false false false - loop en terms (parsedTypeDef :: typedefs) formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces lineNumber + loop en terms (parsedTypeDef :: typedefs) formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces lineNumber | x when (rxFormatVersion.Match x).Success -> - if formatVersion <> "" then printfn "WARN: Duplicate format-version!" - loop en terms typedefs (rxFormatVersion.Match x).Groups["formatVersion"].Value dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + if formatVersion <> "" then printfn "WARNING: Duplicate format-version in document header tags!" + loop en terms typedefs (rxFormatVersion.Match x).Groups["formatVersion"].Value dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) | x when (rxDataVersion.Match x).Success -> - if dataVersion.IsSome then printfn "WARN: Duplicate data-version!" - loop en terms typedefs formatVersion (Some (rxDataVersion.Match x).Groups["dataVersion"].Value) ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + if dataVersion.IsSome then printfn "WARNING: Duplicate data-version in document header tags!" + loop en terms typedefs formatVersion (Some (rxDataVersion.Match x).Groups["dataVersion"].Value) ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) | x when (rxOntology.Match x).Success -> - loop en terms typedefs formatVersion dataVersion (rxOntology.Match x).Groups["ontology"] date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + loop en terms typedefs formatVersion dataVersion ((rxOntology.Match x).Groups["ontology"].Value |> Some) date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) | x when (rxDate.Match x).Success -> + if date.IsSome then printfn "WARNING: Duplicate date in document header tags!" let parsedDate = try DateTime.ParseExact((rxDate.Match x).Groups["date"].Value, "dd:MM:yyyy HH:mm", Globalization.CultureInfo.InvariantCulture) |> Some with _ -> printfn "ERROR: Inproper date given!" None - loop en terms typedefs formatVersion dataVersion ontology parsedDate savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | x when String.startsWith "saved-by" x -> - loop en terms typedefs formatVersion dataVersion ontology date (skipColonSpace enTrimmed |> Some) autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | x when String.startsWith "auto-generated-by" x -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy (skipColonSpace enTrimmed |> Some) subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | x when String.startsWith "subsetdef" x -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy (skipColonSpace enTrimmed :: subsetdefs) imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | x when String.startsWith "import" x -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs (enTrimmed :: imports) synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | x when String.startsWith "synonymtypedef" x -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + loop en terms typedefs formatVersion dataVersion ontology parsedDate savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxSavedBy.Match x).Success -> + if savedBy.IsSome then printfn "WARNING: Duplicate saved-by in document header tags!" + loop en terms typedefs formatVersion dataVersion ontology date ((rxSavedBy.Match x).Groups["savedBy"].Value |> Some) autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxAutoGeneratedBy.Match x).Success -> + if autoGeneratedBy.IsSome then printfn "WARNING: Duplicate auto-generated-by in document header tags!" + loop en terms typedefs formatVersion dataVersion ontology date savedBy ((rxAutoGeneratedBy.Match x).Groups["autoGeneratedBy"].Value |> Some) subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxSubsetdef.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy ((rxSubsetdef.Match x).Groups["subsetdef"].Value :: subsetdefs) imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxImport.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs ((rxImport.Match x).Groups["import"].Value :: imports) synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxSynonymtypedef.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports ((rxSynonymtypedef.Match x).Groups["synonymtypedef"].Value :: synonymtypedefs) idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxIdspace.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs ((rxIdspace.Match x).Groups["idspace"].Value :: idSpaces) defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxDefaultRelationshipIdPrefix.Match x).Success -> + if defaultRelationshipIdPrefix.IsSome then printfn "WARNING: Duplicate default-relationship-id-prefix in document header tags!" + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces ((rxDefaultRelationshipIdPrefix.Match x).Groups["defaultRelationshipIdPrefix"].Value |> Some) idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxIdMapping.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix ((rxIdMapping.Match x).Groups["idMapping"].Value :: idMappings) remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxRemark.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings ((rxRemark.Match x).Groups["remark"].Value :: remarks) treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxTreatXrefsAsEquivalent.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks ((rxTreatXrefsAsEquivalent.Match x).Groups["treatXrefsAsEquivalent"].Value :: treatXrefsAsEquivalents) treatXrefsAsIsAs treatXrefsAsRelationships treatXrefsAsGenusDifferentias relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxTreatXrefsAsGenusDifferentia.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents ((rxTreatXrefsAsGenusDifferentia.Match x).Groups["treatXrefsAsGenusDifferentia"].Value :: treatXrefsAsGenusDifferentias) treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxTreatXrefsAsRelationship.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias ((rxTreatXrefsAsRelationship.Match x).Groups["treatXrefsAsRelationship"].Value :: treatXrefsAsRelationships) treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxTreatXrefsAsIsA.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships ((rxTreatXrefsAsIsA.Match x).Groups["treatXrefsAsIsA"].Value :: treatXrefsAsIsAs) relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxRelaxUniqueIdentifierAssumptionForNamespace.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs ((rxRelaxUniqueIdentifierAssumptionForNamespace.Match x).Groups["relaxUniqueIdentifierAssumptionForNamespace"].Value :: relaxUniqueIdentifierAssumptionForNamespaces) relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + | x when (rxRelaxUniqueLabelAssumptionForNamespace.Match x).Success -> + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces ((rxRelaxUniqueLabelAssumptionForNamespace.Match x).Groups["relaxUniqueLabelAssumptionForNamespace"].Value :: relaxUniqueLabelAssumptionForNamespaces) (lineNumber + 1) | _ -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | _ -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | _ -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | _ -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | _ -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | _ -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | _ -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) - | _ -> - loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) + loop en terms typedefs formatVersion dataVersion ontology date savedBy autoGeneratedBy subsetdefs imports synonymtypedefs idSpaces defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsGenusDifferentias treatXrefsAsRelationships treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces (lineNumber + 1) | false -> - OboOntology.create (List.rev terms) (List.rev typedefs) formatVersion dataVersion ontology date savedBy autoGeneratedBy (List.rev subsetdefs) (List.rev imports) (List.rev synonymtypedefs) (List.rev idSpaces) defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces + OboOntology.create (List.rev terms) (List.rev typedefs) formatVersion dataVersion ontology date savedBy autoGeneratedBy (List.rev subsetdefs) (List.rev imports) (List.rev synonymtypedefs) (List.rev idSpaces) defaultRelationshipIdPrefix idMappings remarks treatXrefsAsEquivalents treatXrefsAsIsAs treatXrefsAsRelationships treatXrefsAsGenusDifferentias relaxUniqueIdentifierAssumptionForNamespaces relaxUniqueLabelAssumptionForNamespaces - loop en [] [] String.Empty None None None None None [] [] [] [] None [] [] [] [] [] [] 0 // was 1 before + loop en [] [] String.Empty None None None None None [] [] [] [] None [] [] [] [] [] [] [] [] 0 // was 1 before DateTime.parse "24:04:2024 08:01" System.DateTime.ParseExact("24:04:2024 08:01", "dd:MM:yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture)