Skip to content
Snippets Groups Projects
Select Git revision
  • 20e1e84a5bcc301f9f6cea0ca6dd6f96c8fba5d5
  • main default protected
2 results

Quaternion_Calculator.py

Blame
  • fields.js 47.67 KiB
    import uuid from "./uuid";
    import inputFormats from "./inputFormats";
    
    const fields = [
      {
        id: "pharma-title",
        predicate: "dce:title",
        label: "Title",
        type: "bf:Title",
        title: "",
        component: "pharma-title",
        language: "eng",
        formValidation: true,
        required: true,
        info: "title info here",
        warning: true
      },
      {
        id: "date",
        fieldname: "Date",
        predicate: "date",
        component: "date",
        multiplicable: true,
        label: "Date",
        value: "",
        dateLabel: "",
        type: "dcterms:date",
        hideType: false,
        formValidation: true,
        warning: false,
        definition:
          "A point or period of time associated with an event in the lifecycle of the resource."
      },
      {
        id: "abstract",
        header: "",
        predicate: "bf:note",
        label: "Description/Abstract",
        value: "",
        type: "bf:Note",
        component: "text-field",
        info: "Abstract",
        infoRef: "",
        multiline: true,
        multilingual: true,
        language: "eng",
        required: true,
        formValidation: true,
        warning: true
      },
      {
        id: "contributors",
        header: "Contributors",
        label: "Contributions",
        type: "schema:Person",
        predicate: "role",
        firstname: "",
        lastname: "",
        role: "role:aut",
        email: "",
        orcid: "",
        institution: [],
        required: true,
        component: "entity",
        multiplicable: true,
        ordered: true,
        ordergroup: "entity",
        formValidation: true,
        info: "contributors to the project",
        warning: true
      },
      {
        id: "projects",
        header: "Association with projects",
        label: "Projects",
        predicate: "frapo:isOutputOf",
        project: [
          {
            "@type": "foaf:Project",
            "skos:prefLabel": [
              {
                "@value": "",
                "@language": "en"
              }
            ],
            "rdfs:comment": [
              {
                "@value": "",
                "@language": "eng"
              }
            ],
            "foaf:homepage": [""],
            "skos:notation": [""]
          }
        ],
        agency: [
          {
            "@type": "frapo:FundingAgency",
            "skos:prefLabel": [
              {
                "@value": "",
                "@language": "eng"
              }
            ],
            "skos:exactMatch": [""]
          }
        ],
        component: "project",
        type: "foaf:Project",
        multiplicable: true,
        required: false,
        ordered: true,
        ordergroup: "project",
        formValidation: false,
        warning: false,
        info: "Put some info here"
      },
      /* {
        id: "file",
        fieldname: "File",
        predicate: "ebucore:filename",
        component: "input-file",
        label: "File to upload",
        value: "",
        definition: "File input."
      },*/
      {
        id: "license",
        fieldname: "License",
        predicate: "edm:rights",
        component: "p-select",
        vocabulary: "licenses",
        label: "License",
        value: "",
        warning: true,
        "skos:prefLabel": [],
        definition:
          "The value will indicate the copyright, usage and access rights that apply to this digital representation."
      },
      {
        id: "file",
        label: "Files",
        component: "files",
        predicate: "ebucore:filename",
        nfile: "",
        fileName: "",
        fileFormat: "",
        fileDescription: "",
        fileExtension: "",
        formValidation: true,
        warning: true
      },
    
      {
        id: "rights",
        fieldname: "Rights statement",
        predicate: "dce:rights",
        component: "p-text-field",
        multiline: true,
        multilingual: true,
        label: "Rights statement",
        value: "",
        language: "",
        definition:
          "Information about rights held in and over the resource. Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights."
      },
      {
        id: "resource-type",
        fieldname: "Resource type",
        predicate: "dcterms:type",
        warning: false,
        value: ""
      },
      {
        id: "1-Biological-macromolecule",
        predicate: "dcterms:subject",
        // predicate: "select",
        type: "skos:Concept",
        //subjectType: "BiologicalMacromolecule:",
        label: "Biological macromolecule:",
        value: "",
        component: "selection",
        description: "selection",
        stateVoc: "biological_macromolecule",
        freefield: true,
        multiplicable: true,
        commit: true,
        visible: true,
        category: ["biologicalMacromolecule"],
        vocabulary: "biological_macromolecule",
        info: ""
      },
      {
        id: "1-Uniprot",
        predicate: "dcterms:subject",
        type: "pharmaWien:uniprot_protein",
        //type: "skos:Concept",
        //subjectType: "protein_uniprot", // for freefield @type
        label: "Uniprot record",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        ontology: "uniprot",
        ontClass: "",
        treeview: false,
        clickable: false,
        freefield: false,
        component: "ext-service",
        category: ["biologicalMacromolecule"],
        description: "Protein",
        info:
          "UniProt ID EDAM>data:3021 Accession number of a UniProt (protein sequence) database entry"
      },
      {
        id: "1-Isoform",
        predicate: "dcterms:subject",
        type: "pharmaWien:isoform_protein",
        //subjectType: "isoform",
        label: "Isoform:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Protein",
        info:
          "A quality of a protein that harbors a variation from the native protein (called canonical form), which could arise due to alternative promoter usage, alternative splicing, alternative translation initiation and ribosomal frameshifting.",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0002646"
      },
      {
        id: "1-Protein-sequence-alteration",
        predicate: "dcterms:subject",
        type: "pharmaWien:proteinSequenceAlteration_protein",
        //subjectType: "ProteinSequenceAlteration",
        label: "Protein Sequence alteration:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Protein",
        info:
          "Any subcellular or molecular event, process, or condition that produces a divergence from the usual wild-type condition in the primary sequence of a peptide or protein molecule. (NCI) [ NCI ]",
        infoRef: "NCIT:C21070"
      },
      {
        id: "1-Protein-modification",
        predicate: "dcterms:subject",
        type: "pharmaWien:proteinModifaction_protein",
        //subjectType: "ProteinModifaction",
        label: "Protein modifaction:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Protein",
        info:
          "Covalent modification of, or a change resulting in an alteration of the measured molecular mass of, a peptide or protein amino acid residue. [ PubMed:18688235 ]",
        infoRef: "protein modification MOD:00000"
      },
      {
        id: "1-Entrez-gene-ID",
        predicate: "dcterms:subject",
        type: "pharmaWien:entrezGeneid_gene",
        //subjectType: "EntrezGene_ID",
        label: "Entrez Gene_ID:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Gene",
        info:
          "EntrezGene_ID NCIT:C49379 Indicates the accession number for a Gene within the Entrez Gene database. [ NCI ]",
        infoRef: "NCIT:C49379"
      },
      {
        id: "1-Gene-modification",
        predicate: "dcterms:subject",
        type: "pharmaWien:modification_gene",
        //subjectType: "GeneModification",
        label: "Gene modification:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Gene",
        info:
          "Gene modification NCIT:C126104 Any gene manipulation method used to generate a product with an altered sequence, structure, or conformation. [ NCI ]",
        infoRef: "NCIT:C126104"
      },
      {
        id: "1-Nucleic-acid-type",
        predicate: "dcterms:subject",
        type: "pharmaWien:nucleicAcidType_polyNucl",
        //subjectType: "polynucl_nucleicAcidType",
        label: "Nucleic acid type:",
        value: "",
        text: "",
        required: false,
        visible: false,
        //visible: true,
        freefield: true,
        removable: false,
        ontology: "chebi",
        ontClass: "CHEBI_15986",
        topId: "CHEBI_15986",
        component: "ext-service",
        category: ["biologicalMacromolecule"],
        description: "Polynucleotide",
        info: "CHEBI:15986"
      },
      {
        id: "1-RefSeq-accession",
        predicate: "dcterms:subject",
        type: "pharmaWien:refSeqAccession_polynucl",
        //subjectType: "polynucl_RefSeqAccession",
        label: "RefSeq accession:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Polynucleotide",
        info:
          "RefSeq accession EDAM > data:1098  Accession number of a RefSeq database entry. Synonyms: RefSeq ID",
        infoRef: ""
      },
      {
        id: "1-PFAM-accession",
        predicate: "dcterms:subject",
        type: "pharmaWien:PFAMaccession_protFam",
        //subjectType: "protFam_PFAMaccession",
        label: "PFAM accession number:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Protein Family",
        info:
          "PFAM accession number EDAM > data:1138 Accession number of a Pfam entry.",
        infoRef: ""
      },
      {
        id: "1-Uniprot-protein-subunit",
        predicate: "dcterms:subject",
        type: "pharmaWien:uniprot_proteinSub",
        //subjectType: "proteinSub_uniprot",
        label: "Uniprot accession number:",
        value: "",
        text: "",
        required: false,
        visible: false,
        //visible: true,
        ontology: "uniprot",
        ontClass: "",
        treeview: false,
        component: "ext-service",
        category: ["biologicalMacromolecule"],
        description: "Protein Subunit",
        info:
          "UniProt ID EDAM>data:3021 Accession number of a UniProt (protein sequence) database entry"
      },
      {
        id: "1-Isoform-protein-subunit",
        predicate: "dcterms:subject",
        type: "pharmaWien:isoform_proteinSub",
        //subjectType: "isoform_proteinSub",
        label: "Isoform:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        freefield: true,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Protein Subunit",
        info:
          "A quality of a protein that harbors a variation from the native protein (called canonical form), which could arise due to alternative promoter usage, alternative splicing, alternative translation initiation and ribosomal frameshifting.",
        infoRef: ""
      },
      {
        id: "1-Protein-sequence-alteration-protein-subunit",
        predicate: "dcterms:subject",
        type: "pharmaWien:proteinSequenceAlteration_proteinSub",
        //subjectType: "ProteinSequenceAlteration_proteinSub",
        label: "Protein Sequence alteration:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        freefield: true,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Protein Subunit",
        info:
          "Any subcellular or molecular event, process, or condition that produces a divergence from the usual wild-type condition in the primary sequence of a peptide or protein molecule. (NCI) [ NCI ]",
        infoRef: "NCIT:C21070"
      },
      {
        id: "1-Protein-modification-protein-subunit",
        predicate: "dcterms:subject",
        type: "pharmaWien:proteinMod_proteinSub",
        //subjectType: "ProteinMod_proteinSub",
        label: "Protein modification:",
        value: "",
        required: false,
        visible: false,
        //visible: true,
        removable: false,
        freefield: true,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Protein Subunit",
        info:
          "Covalent modification of, or a change resulting in an alteration of the measured molecular mass of, a peptide or protein amino acid residue. [ PubMed:18688235 ]",
        infoRef: "MOD:00000"
      },
      {
        id: "1-Complex-portal-accession",
        predicate: "dcterms:subject",
        type: "pharmaWien:complexPortalAccession_proteinComplex",
        //subjectType: "ProteinComplex_Complex-PortalAccession",
        label: "Complex-Portal Accession:",
        value: "",
        required: false,
        //visible: true,
        visible: false,
        removable: false,
        component: "text-field",
        category: ["biologicalMacromolecule"],
        description: "Protein Complex",
        info:
          "A persistent (stable) and unique identifier of the manually curated EMBL-EBI Complex-Portal (Complex Portal",
        infoRef: ""
      },
      {
        id: "1-Polysaccharide",
        predicate: "dcterms:subject",
        type: "pharmaWien:polysaccharide",
        //subjectType: "polysaccharide",
        label: "Polysaccharide name:",
        value: "",
        text: "",
        required: false,
        visible: false,
        //visible: true,
        ontology: "chebi",
        ontClass: "CHEBI_18154",
        freefield: true,
        inchi: true,
        topId: "CHEBI_18154",
        component: "ext-service",
        category: ["biologicalMacromolecule"],
        description: "Polysaccharide",
        info: ""
      },
      {
        id: "1-Lipid",
        predicate: "dcterms:subject",
        type: "pharmaWien:lipid",
        //subjectType: "lipid",
        label: "Lipid name:",
        value: "",
        text: "",
        required: false,
        visible: false,
        //visible: true,
        ontology: "chebi",
        freefield: true,
        ontClass: "CHEBI_18059",
        topId: "CHEBI_18059",
        component: "ext-service",
        category: ["biologicalMacromolecule"],
        description: "Lipid",
        info: ""
      },
      {
        id: "2-Life",
        predicate: "dcterms:subject",
        type: "pharmaWien:life",
        //subjectType: "life",
        label: "Life:",
        value: "",
        component: "selection",
        description: "selection",
        stateVoc: "life",
        freefield: false,
        commit: true,
        multiplicable: false,
        visible: true,
        //category: ["life"],
        vocabulary: "life",
        info:
          "Life NCIT:C142142 Thee biochemical phenomenon that distinguishes organisms from inorganic matter. It is characterized by growth, metabolism, and reproduction. [ NCI ]"
      },
    
      {
        id: "2-Living-organism",
        predicate: "dcterms:subject",
        type: "pharmaWien:LivingOrganism",
        //subjectType: "LivingOrganism",
        label: "Living Organism:",
        value: "",
        visible: false,
        required: false,
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "ncbitaxon",
        ontClass: "NCBITaxon_1",
        //ontClass: "NCBITaxon_10239",
        treeview: true,
        freefield: true,
        //topId: "NCBITaxon_1",
        topId: "NCBITaxon_1",
        category: ["life"],
        //baseurl: "http://purl.obolibrary.org/obo/"
        description: "Living Organisms",
        infoRef: "http://purl.obolibrary.org/obo/NCBITaxon_1",
        info: "NCBITaxon_1"
      },
      {
        id: "2-Viruses",
        predicate: "dcterms:subject",
        type: "pharmaWien:LivingOrganismVirus",
        //subjectType: "LivingOrganismVirus",
        label: "Viruses",
        value: "",
        visible: false,
        required: false,
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "ncbitaxon",
        //ontClass: "NCBITaxon_1",
        ontClass: "NCBITaxon_10239",
        treeview: true,
        freefield: true,
        //topId: "NCBITaxon_1",
        topId: "NCBITaxon_10239",
        category: ["life"],
        //baseurl: "http://purl.obolibrary.org/obo/"
        description: "Living Organisms",
        infoRef: "http://purl.obolibrary.org/obo/NCBITaxon_10239",
        info: "NCBITaxon_10239"
      },
      {
        id: "2-Viroids",
        predicate: "dcterms:subject",
        type: "pharmaWien:LivingOrganismViroids",
        //subjectType: "LivingOrganismViroids",
        label: "Viroids",
        value: "",
        visible: false,
        required: false,
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "ncbitaxon",
        //ontClass: "NCBITaxon_1",
        ontClass: "NCBITaxon_12884",
        treeview: true,
        freefield: true,
        //topId: "NCBITaxon_1",
        topId: "NCBITaxon_12884",
        category: ["life"],
        //baseurl: "http://purl.obolibrary.org/obo/"
        description: "Living Organisms",
        infoRef: "http://purl.obolibrary.org/obo/NCBITaxon_12884",
        info: "NCBITaxon_10239"
      },
      {
        id: "2-cellular-organisms",
        predicate: "dcterms:subject",
        type: "pharmaWien:LivingOrganismCellularO",
        //subjectType: "LivingOrganismCellularO",
        label: "Cellular organisms",
        value: "",
        visible: false,
        required: false,
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "ncbitaxon",
        //ontClass: "NCBITaxon_1",
        ontClass: "NCBITaxon_131567",
        treeview: true,
        freefield: true,
        //topId: "NCBITaxon_1",
        topId: "NCBITaxon_131567",
        category: ["life"],
        //baseurl: "http://purl.obolibrary.org/obo/"
        description: "Living Organisms",
        infoRef: "http://purl.obolibrary.org/obo/NCBITaxon_131567",
        info: "NCBITaxon_131567"
      },
      {
        id: "2-otherSequences",
        predicate: "dcterms:subject",
        type: "pharmaWien:LivingOrganismOSeq",
        //subjectType: "LivingOrganism",
        label: "other sequences:",
        value: "",
        visible: false,
        required: false,
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "ncbitaxon",
        //ontClass: "NCBITaxon_1",
        ontClass: "NCBITaxon_28384",
        treeview: true,
        freefield: true,
        //topId: "NCBITaxon_1",
        topId: "NCBITaxon_28384",
        category: ["life"],
        //baseurl: "http://purl.obolibrary.org/obo/"
        description: "Living Organisms",
        infoRef: "http://purl.obolibrary.org/obo/NCBITaxon_28384",
        info: "NCBITaxon_28384"
      },
      {
        id: "2-unclassifiedSequences",
        predicate: "dcterms:subject",
        type: "pharmaWien:LivingOrganismUSeq",
        //subjectType: "LivingOrganism",
        label: "Unclassified sequences:",
        value: "",
        visible: false,
        required: false,
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "ncbitaxon",
        //ontClass: "NCBITaxon_1",
        ontClass: "NCBITaxon_12908",
        treeview: true,
        freefield: true,
        //topId: "NCBITaxon_1",
        topId: "NCBITaxon_12908",
        category: ["life"],
        //baseurl: "http://purl.obolibrary.org/obo/"
        description: "Living Organisms",
        infoRef: "http://purl.obolibrary.org/obo/NCBITaxon_12908",
        info: "NCBITaxon_12908"
      },
      {
        id: "2-cellosaurus",
        predicate: "dcterms:subject",
        type: "pharmaWien:cellosaurus",
        //subjectType: "cellosaurus",
        label: "Cellosaurus cell-line:",
        value: "",
        text: "",
        visible: false,
        required: false,
        treeview: false,
        component: "ext-service",
        ontology: "cellosaurus",
        ontClass: "",
        category: ["life"],
        description: "Cellosaurus cell-line"
      },
      {
        id: "2-cultured-cell",
        predicate: "dcterms:subject",
        type: "pharmaWien:cultured-cell",
        //subjectType: "cultured-cell",
        label: "Cultured cell (CLO):",
        value: "",
        text: "",
        visible: false,
        required: false,
        treeview: true,
        topId: "CL_0000010",
        component: "ext-service",
        ontology: "clo",
        ontClass: "CL_0000010",
        category: ["life"],
        description: "Cellosaurus cell-line",
        infoRef: "",
        info: "CL_0000010"
      },
      {
        id: "3-Disease",
        predicate: "dcterms:subject",
        type: "pharmaWien:disease",
        //subjectType: "disease",
        label: "Disease:",
        value: "",
        text: "",
        required: false,
        visible: true,
        //component: "select-ebiapi",
        component: "ext-service",
        freefield: true,
        ontology: "mondo",
        topId: "MONDO_0000001",
        ontClass: "",
        category: ["disease"],
        //ontClass: "MONDO_0000001",
        //ontClass: "MONDO_0000620",
        //baseurl: "http://purl.obolibrary.org/obo/",
        description: "disease or disorder ",
        info:
          "disease or disorder MONDO:0000001 A disease is a disposition to undergo pathological processes that exists in an organism because of one or more disorders in that organism. [ OGMS:0000031 ]",
        infoRef: "MONDO:0000001"
      },
      {
        id: "4-Anatomical-category",
        predicate: "dcterms:subject",
        type: "skos:Concept",
        //subjectType: "Anatomical Category:",
        label: "Anatomical Category:",
        value: "",
        component: "selection",
    
        commit: true,
        visible: true,
        vocabulary: "anatomical_category",
        stateVoc: "anatomical_category",
        info: "OMIT:0001001"
      },
    
      {
        id: "4-Anatomical-entity",
        predicate: "dcterms:subject",
        type: "pharmaWien:AnatomEntity",
        //subjectType: "AnatomEntity",
        label: "Anatomical entity:",
        visible: false,
        //visible: false,
        required: false,
        value: "",
        text: "",
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "uberon",
        ontClass: "UBERON_0001062",
        //baseurl: "http://purl.obolibrary.org/obo/",
        topId: "UBERON_0001062",
        freefield: true,
        category: ["anatomicalCategory"],
        description: "Anatomical entity, cross species",
        info:
          "anatomical entity UBERON:0001062 Biological entity that is either an individual member of a biological species or constitutes the structural organization of an individual member of a biological species. [ FMA:62955 http://orcid.org/0000-0001-9114-8737 ]"
      },
      {
        id: "4-Plant-anatomical-entity",
        predicate: "dcterms:subject",
        type: "pharmaWien:PlantAnat",
        //subjectType: "PlantAnat",
        label: " Plant anatomical entity:",
        visible: false,
        //visible: false,
        required: false,
        value: "",
        text: "",
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "plant",
        ontClass: "PO_0025131",
        //baseurl: "http://purl.obolibrary.org/obo/",
        topId: "PO_0025131",
        freefield: true,
        category: ["anatomicalCategory"],
        description: "Plant anatomical entity",
        info:
          "plant anatomical entity PO:0025131 An anatomical entity that is or was part of a plant. [ CARO:0000000 POC:curators ]"
      },
      {
        id: "4-Fungal-structure",
        predicate: "dcterms:subject",
        type: "pharmaWien:FungStruct",
        //subjectType: "FungStruct",
        label: "Fungal structure:",
        //visible: true,
        visible: false,
        required: false,
        value: "",
        text: "",
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "fao",
        ontClass: "FAO_0000001",
        //baseurl: "http://purl.obolibrary.org/obo/",
        topId: "FAO_0000001",
        freefield: true,
        category: ["anatomicalCategory"],
        description: "Anatomical entity, fungi",
        info: "The parts of fungi.",
        infoRef: "http://purl.bioontology.org/ontology/MESH/D056229"
      },
      {
        id: "4-Bacterial-structures",
        predicate: "dcterms:subject",
        type: "pharmaWien:BactStruct",
        //subjectType: "BactStruct",
        label: " Bacterial structures:",
        //visible: true,
        visible: false,
        required: false,
        value: "",
        text: "",
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "omit",
        ontClass: "OMIT_0026581",
        //baseurl: "http://purl.obolibrary.org/obo/",
        topId: "OMIT_0026581",
        freefield: true,
        category: ["anatomicalCategory"],
        description: "Anatomical entity, bacteria",
        info: "The parts of bacteria.",
        infoRef: "http://purl.bioontology.org/ontology/MESH/D056226"
      },
      {
        id: "4-Viral-structures",
        predicate: "dcterms:subject",
        //subjectType: "ViralStruct",
        type: "pharmaWien:ViralStruct",
        label: "Viral structures:",
        //visible: true,
        visible: false,
        required: false,
        value: "",
        text: "",
        //component: "select-ebiapi",
        component: "ext-service",
        ontology: "omit",
        ontClass: "OMIT_0026580",
        //baseurl: "http://purl.obolibrary.org/obo/",
        topId: "OMIT_0026580",
        freefield: true,
        category: ["anatomicalCategory"],
        description: "Viral structures",
        info: "The parts of bacteria.",
        infoRef: ""
      },
      {
        id: "5-Molecular-function",
        predicate: "dcterms:subject",
        type: "pharmaWien:goBioProcess",
        subjectType: "goMolFunct",
        visible: true,
        label: "GO Molecular Function:",
        value: "",
        text: "",
        required: false,
        //component: "select-ebiapi",
        //baseurl: "http://purl.obolibrary.org/obo/",
        component: "ext-service",
        ontology: "go",
        ontClass: "GO_0003674",
        topId: "GO_0003674",
        freefield: true,
        description: "GO Molecular Function:",
        info:
          "A molecular process that can be carried out by the action of a single macromolecular machine, usually via direct physical interactions with other molecular entities. Function in this sense denotes an action, or activity, that a gene product (or a complex) performs. These actions are described from two distinct but related perspectives: (1) biochemical activity, and (2) role as a component in a larger system/process."
      },
      {
        id: "5-Biological-process",
        predicate: "dcterms:subject",
        type: "pharmaWien:goBioProcess",
        //subjectType: "goBioProcess",
        label: "GO Biological Process:",
        visible: true,
        value: "",
        text: "",
        required: false,
        //component: "select-ebiapi",
        //baseurl: "http://purl.obolibrary.org/obo/",
        component: "ext-service",
        ontology: "go",
        ontClass: "GO_0008150",
        topId: "GO_0008150",
        description: "GO Biological Process:",
        freefield: true,
        infoRef: "",
        info:
          "A biological process represents a specific objective that the organism is genetically programmed to achieve. Biological processes are often described by their outcome or ending state, e.g., the biological process of cell division results in the creation of two daughter cells (a divided cell) from a single parent cell. A biological process is accomplished by a particular set of molecular functions carried out by specific gene products (or macromolecular complexes), often in a highly regulated manner and in a particular temporal sequence."
      },
      {
        id: "5-Cellular-component",
        predicate: "dcterms:subject",
        type: "pharmaWien:goCellComp",
        //subjectType: "goCellComp",
        visible: true,
        label: "GO Cellular Component:",
        value: "",
        text: "",
        required: false,
        //component: "select-ebiapi",
        //baseurl: "http://purl.obolibrary.org/obo/",
        component: "ext-service",
        ontology: "go",
        ontClass: "GO_0005575",
        topId: "GO_0005575",
        freefield: true,
        description: "GO Cellular Component:",
        info:
          "A location, relative to cellular compartments and structures, occupied by a macromolecular machine when it carries out a molecular function. There are two ways in which the gene ontology describes locations of gene products: (1) relative to cellular structures (e.g., cytoplasmic side of plasma membrane) or compartments (e.g., mitochondrion), and (2) the stable macromolecular complexes of which they are parts (e.g., the ribosome). [ Sao Paulo MCA-MR Syndrome (ilx_0637672)"
      },
      {
        id: "6-Chemical-entities",
        predicate: "dcterms:subject",
        type: "pharmaWien:chebiChemEnt",
        //subjectType: "chebiChemEnt",
        label: "Chemical Entities:",
        visible: true,
        value: "",
        // component: "select-ebiapi",
        component: "ext-service",
        //baseurl: "http://purl.obolibrary.org/obo/",
        ontology: "chebi",
        ontClass: "CHEBI_24431",
        topId: "CHEBI_24431",
        infoRef: "http://purl.obolibrary.org/obo/CHEBI_24431",
        freefield: true,
        inchi: true,
        info:
          "A chemical entity is a physical entity of interest in chemistry including molecular entities, parts thereof, and chemical substances. ",
        description: "Chemical entity"
      },
      /* {
        id: "6-Atom",
        predicate: "dcterms:subject",
        type: "pharmaWien:skos:Concept",
        subjectType: "chebiChemsub",
        label: "Atom:",
        visible: true,
        value: "",
        // component: "select-ebiapi",
        component: "ext-service",
        //baseurl: "http://purl.obolibrary.org/obo/",
        ontology: "chebi",
        ontClass: "CHEBI_33250",
        topId: "CHEBI_33250",
        infoRef: "http://purl.obolibrary.org/obo/CHEBI_33250",
        freefield: true,
        inchi: true,
        info: " ",
        description: "Atom"
      },
      {
        id: "6-chemical-substance",
        predicate: "dcterms:subject",
        type: "pharmaWien:skos:Concept",
        subjectType: "chebiChemsub",
        label: "Chemical substance:",
        visible: true,
        value: "",
        // component: "select-ebiapi",
        component: "ext-service",
        //baseurl: "http://purl.obolibrary.org/obo/",
        ontology: "chebi",
        ontClass: "CHEBI_59999",
        topId: "CHEBI_59999",
        infoRef: "http://purl.obolibrary.org/obo/CHEBI_59999",
        freefield: true,
        inchi: true,
        info: " ",
        description: "Chemical substance"
      },*/
      {
        id: "6-Role",
        predicate: "dcterms:subject",
        type: "pharmaWien:chebiRole",
        //subjectType: "chebiRole",
        label: "Role:",
        visible: true,
        value: "",
        text: "",
        //component: "select-ebiapi",
        //baseurl: "http://purl.obolibrary.org/obo/",
        component: "ext-service",
        ontology: "chebi",
        ontClass: "CHEBI_50906",
        topId: "CHEBI_50906",
        infoRef: "http://purl.obolibrary.org/obo/CHEBI_50906",
        info: "A role is particular behaviour which a material entity may exhibit.",
        freefield: true,
        description: "Role"
      },
      {
        id: "6-Subatomic-particle",
        predicate: "pharmaWien:dcterms:subject",
        type: "pharmaWien:chebiSubPart",
        //subjectType: "chebiSubPart",
        label: "Subatomic particle:",
        visible: true,
        value: "",
        text: "",
        //component: "select-ebiapi",
        //baseurl: "http://purl.obolibrary.org/obo/",
        component: "ext-service",
        ontology: "chebi",
        ontClass: "CHEBI_36342",
        topId: "CHEBI_36342",
        freefield: true,
        infoRef: "http://purl.obolibrary.org/obo/CHEBI_36342",
        info: "A particle smaller than an atom.",
        description: "subatomic particle"
      },
      {
        id: "7-Technique",
        predicate: "dcterms:subject",
        type: "pharmaWien:technique",
        //subjectType: "technique",
        label: "Technique",
        visible: true,
        required: false,
        value: "",
        text: "",
        component: "ext-service",
        ontology: "ncit",
        ontClass: "NCIT_C16847",
        topId: "NCIT_C16847",
        description: "Research technique:",
        category: ["technique"],
        freefield: true,
        infoRef:
          "http://www.ontobee.org/ontology/NCIT?iri=http://purl.obolibrary.org/obo/NCIT_C20368",
        info: "Technique used in the laboratory for scientific research. "
      },
      {
        id: "8-Discipline",
        predicate: "dcterms:subject",
        type: "pharmaWien:discipline",
        //subjectType: "discipline",
        label: "Discipline:",
        visible: true,
        required: false,
        value: "",
        text: "",
        component: "ext-service",
        ontology: "ncit",
        ontClass: "NCIT_C19160",
        topId: "NCIT_C19160",
        freefield: true,
        category: ["discipline"],
        description: "Occupation or Discipline:",
        infoRef: "http://purl.obolibrary.org/obo/NCIT_C19160",
        info: "Info here "
      },
    
      {
        id: "0-Assay-result",
        predicate: "dcterms:subject",
        type: "skos:Concept",
        //subjectType: "assay_result",
        label: "Uploaded file with assay result",
        value: "",
        component: "assay-selection",
        freefield: false,
        multiplicable: false,
        visible: true,
        info:
          "The endpoint is a quantitive or qualitative interpretable standardized representation of a perturbation (a change from a defined reference state of a closed model system) that is measured by the bioassay. An endpoint consists of a series of data points, one for each perturbing agent (screened entity) tested the assay.",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0000179",
        description: "Assay result:"
      },
    
      {
        id: "0-Assay-title",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayTitle",
        //subjectType: "Assaytitle",
        visible: true,
        required: false,
        removable: false,
        category: ["assay"],
        label: "Assay title:",
        value: "",
        component: "text-field",
        description: "Assay title",
        info:
          "The name of a bioassay which is associated with each assay ID (AID). It contains information about the target tested, the stage of the assay (primary or confirmatory), the assay format (biochemical or cell based), etc.",
        infoRef:
          "https://www.ebi.ac.uk/ols/ontologies/bao/terms?iri=http%3A%2F%2Fwww.bioassayontology.org%2Fbao%23BAO_0000521"
      },
      {
        id: "0-Assay-protocol",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayAbstract",
        //subjectType: "AssayAbstract",
        visible: true,
        required: false,
        removable: false,
        label: "Assay abstract:",
        value: "",
        component: "text-field",
        multiline: true,
        category: ["assay"],
        info:
          "This includes the methodology used to perform a particular bioassay and is found on the PubChem website associated with each assay ID (AID). It includes the assay components and the order in which they were added, the incubation times, detection method and the kit used, etc.",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0000523",
        description: "Assay target:"
      },
      {
        id: "0-Bioassay-type",
        predicate: "dcterms:subject",
        type: "skos:Concept",
        //subjectType: "Bioassay_type",
        label: "Bioassay type:",
        visible: true,
        required: false,
        value: "",
        component: "selection",
        commit: true,
        visible: true,
        //category: ["assay"],
        vocabulary: "bioassay_type",
        stateVoc: "bioassay_type",
        info: ""
      },
      {
        id: "0-Bioassay-category",
        predicate: "dcterms:subject",
        type: "pharmaWien:bioassayCategory",
        //subjectType: "bioassayCategory",
        label: "Bioassay category:",
        value: "",
        visible: true,
        required: false,
        freefield: true,
        component: "ext-service",
        ontology: "bao",
        ontClass: "BAO_0000015",
        //category: ["assay"],
        topId: "BAO_0000015",
        description: "Bioassay category:",
        info:
          "General assay types like enzyme assay and their subtypes like kinase activity assay",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0000015"
      },
      {
        id: "0-Assay-format",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayFormat",
        //subjectType: "Assayformat",
        label: "Assay format",
        visible: true,
        required: false,
        value: "",
        freefield: true,
        component: "ext-service",
        ontology: "bao",
        ontClass: "BAO_0000019",
        topId: "BAO_0000019",
        description: "Assay format:",
        //category: ["assay"],
        info:
          "Assay format is a conceptualization of assays based on the biological and / or chemical features of the experimental system. For example assay formats include biochemical assays - referring to assays with purified protein, cell-based - referring to assays in whole cells, or organism-based - referring to assays performed in an organism.",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0000019"
      },
      {
        id: "0-Assay-design-method",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayDesignMethod",
        //subjectType: "Assay design method",
        label: "Assay design method",
        visible: true,
        required: false,
        value: "",
        freefield: true,
        component: "ext-service",
        ontology: "bao",
        // baseurl: "http://www.bioassayontology.org/bao#",
        ontClass: "BAO_0002202",
        //category: ["assay"],
        topId: "BAO_0002202",
        description: "Assay design method:",
        info:
          "The assay design method describes how a biological or physical process screened / investigated in the model system is translated into a detectable signal. This relates to the technology / technologies used to make the assay system work, i.e. enable that the screened process can be detected. It typically involves some manipulation of the (biological) model system to detect the process of interest.",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0002202"
      },
    
      {
        id: "0-Computational-method",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayComputationalMethod",
        //subjectType: "Computational method",
        label: "Computational method",
        visible: true,
        required: false,
        value: "",
        freefield: true,
        component: "ext-service",
        //category: ["assay"],
        ontology: "bao",
        //baseurl: "http://www.bioassayontology.org/bao#",
        ontClass: "BAO_0002094",
        topId: "BAO_0002094",
        description: "Computational method",
        info:
          "Method based on the application of information technology to chemistry and biology.",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0002094"
      },
      {
        id: "0-Assay-screening-campaign-stage",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayScreeningCampaignStage",
        //subjectType: "Assay screening campaign stage",
        label: "Assay screening campaign stage",
        visible: true,
        required: false,
        value: "",
        freefield: true,
        component: "ext-service",
        ontology: "bao",
        ontClass: "BAO_0000029",
        topId: "BAO_0000029",
        //category: ["assay"],
        // baseurl: "http://www.bioassayontology.org/bao#",
        description: "Assay screening campaign stage:",
        info:
          "The assay stage describes the purpose of the assay in an assay campaign. Assay stage also relates to the order of assays in a screening campaign. For example the primary assay, which is performed first, identifies hits. The primary hits are then confirmed in a confirmatory assay. Subsequent secondary assays are run to eliminate compounds that are not of interest or to confirm hits using an alternate design / technology, or to further characterize compounds. Whether an assay is run in single concentration or concentration response is defined in the class 'assay measurement throughput quality'. For example primary assays are typically run in single concentration with single measurements. However, the NCGC runs qHTS primary assays as concentration-response assays.",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0000029"
      },
      {
        id: "0-Organism",
        predicate: "dcterms:subject",
        type: "skos:Concept",
        //subjectType: "AssayOrganism:",
        label: "Organism",
        description: "selection",
        value: "",
        component: "selection",
        freefield: false,
        commit: true,
        visible: true,
        vocabulary: "assay_organism",
        stateVoc: "assay_organism",
        category: ["assayOrganism"],
        multiplicable: true,
        info:
          "The organism related to the target / meta-target of the bioassay. It includes both bacterium and eukaryote.",
        infoRef: "BAO:0000551"
      },
      {
        id: "0-Organism-assayTarget",
        predicate: "dcterms:subject",
        type: "skos:Concept",
        //subjectType: "AssayOrganism:",
        label: "Assay Target Organism",
        description: "Organism",
        value: "",
        component: "selection",
        freefield: false,
        commit: true,
        visible: false,
        vocabulary: "assayTarget_organism",
        stateVoc: "organism_assay_target",
        category: ["assayTarget"],
        subcategory: ["organismAssayTarget"],
        multiplicable: true,
        info:
          "The organism related to the target / meta-target of the bioassay. It includes both bacterium and eukaryote.",
        infoRef: "BAO:0000551"
      },
      {
        id: "0-Cellular-organism",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayCellularOrganism",
        //subjectType: "AssayCellularOrganism",
        label: "Cellular organism",
        value: "",
        required: false,
        visible: false,
        freefield: true,
        ontology: "ncbitaxon",
        ontClass: "NCBITaxon_131567",
        topId: "NCBITaxon_131567",
        component: "ext-service",
        category: ["assayOrganism"],
        description: "Cellular organism",
        info: ""
      },
      {
        id: "0-Viruses",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayViruses",
        //subjectType: "AssayViruses",
        label: "Viruses",
        value: "",
        required: false,
        visible: false,
        freefield: true,
        ontology: "ncbitaxon",
        ontClass: "NCBITaxon_10239",
        topId: "NCBITaxon_10239",
        component: "ext-service",
        category: ["assayOrganism"],
        description: "Viruses",
        info: ""
      },
      {
        id: "0-Viroids",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayViroids",
        //subjectType: "AssayViroids",
        label: "Viroids",
        value: "",
        freefield: true,
        required: false,
        visible: false,
        ontology: "ncbitaxon",
        ontClass: "NCBITaxon_12884",
        topId: "NCBITaxon_12884",
        component: "ext-service",
        category: ["assayOrganism"],
        description: "Viroids",
        info: ""
      },
      {
        id: "0-cell-line",
        predicate: "dcterms:subject",
        type: "pharmaWien:assayCellosaurus",
        //subjectType: "cell line cellosaurus",
        label: "Cultured cell",
        visible: true,
        required: false,
        value: "",
        component: "ext-service",
        ontology: "cellosaurus",
        ontClass: "",
        treeview: false,
        description: "Cultured Cell (cellosaurus)",
        info:
          "A cell in vitro that is or has been maintained or propagated as part of a cell culture. [ ReO:mhb ]",
        infoRef: "http://purl.obolibrary.org/obo/CL_0000010"
      },
      {
        id: "0-Assay-target",
        predicate: "dcterms:subject",
        type: "skos:Concept",
        //subjectType: "Assay_target",
        label: "Assay target ",
        description: "selection",
        value: "",
        component: "selection",
        commit: true,
        freefield: true,
        multiplicable: true,
        visible: true,
        vocabulary: "assay_target",
        category: ["assayTarget"],
        stateVoc: "assay_target",
        info: ""
        //baseurl: "http://www.bioassayontology.org/bao#",
        //description: "Assay target:"
      },
    
      {
        id: "0-Small-molecule",
        predicate: "dcterms:subject",
        type: "pharmaWien:smallMol_assayTarget",
        //subjectType: "assay target small molecule",
        label: "Small molecule name:",
        value: "",
        required: false,
        visible: false,
        ontology: "chebi",
        ontClass: "CHEBI_23367",
        topId: "CHEBI_23367",
        freetext: true,
        component: "ext-service",
        category: ["assayTarget"],
        description: "Small Molecule",
        info: "NCIT:C48809"
      },
      {
        id: "0-cellular-anatomical-entity",
        predicate: "dcterms:subject",
        type: "pharmaWien:cellularAnatomicalEntity",
        //subjectType: "cellular-anatomical-entity_assayTarget",
        label: "Assay Target Cellular anatomical entity",
        value: "",
        required: false,
        visible: false,
        ontology: "go",
        ontClass: "http://purl.obolibrary.org/obo/GO_0110165",
        topId: "GO_0110165",
        component: "ext-service",
        category: ["assayTarget"],
        freefield: true,
        multiple: true,
        description: "Cellular anatomical entity",
        info: "",
        infoRef: "http://purl.obolibrary.org/obo/GO_0110165"
      },
      {
        id: "0-tissue",
        predicate: "dcterms:subject",
        type: "pharmaWien:tissue_assayTarget",
        //subjectType: "tissue_assayTarget",
        label: "Assay Target Tissue name:",
        value: "",
        required: false,
        visible: false,
        freefield: true,
        multiple: true,
        ontology: "ncit",
        ontClass: "NCIT_C12801",
        topId: "NCIT_C12801",
        component: "ext-service",
        category: ["assayTarget"],
        description: "Tissue",
        info:
          "An anatomical structure consisting of similarly specialized cells and intercellular matrix, aggregated according to genetically determined spatial relationships, performing a specific function. [ NCI ]",
        infoRef: "NCIT:C12801"
      },
      {
        id: "0-carbohydrate",
        predicate: "dcterms:subject",
        type: "harmaWien:carbohydrate_assayTarget",
        //subjectType: "assay target carbohydrate",
        label: "Assay Target Carbohydrate:",
        value: "",
        required: false,
        visible: false,
        freefield: true,
        multiple: true,
        ontology: "chebi",
        ontClass: "CHEBI_16646",
        topId: "CHEBI_16646",
        component: "ext-service",
        category: ["assayTarget"],
        description: "Carbohydrate",
        info:
          "An anatomical structure consisting of similarly specialized cells and intercellular matrix, aggregated according to genetically determined spatial relationships, performing a specific function. [ NCI ]",
        infoRef: "NCIT:C12801"
      },
      {
        id: "0-detection",
        predicate: "dcterms:subject",
        type: "skos:Concept",
        //subjectType: "assay_detection",
        label: "Detection method:",
        description: "selection",
        value: "",
        required: false,
        visible: true,
    
        freefield: false,
        commit: true,
        visible: true,
        vocabulary: "assay_detection",
        stateVoc: "assay_detection",
        category: ["assayDetection"],
        multiplicable: true,
        component: "selection",
        info:
          "The physical method (technology) used to measure / readout the effect caused by a perturbagen in the assay environment.",
        infoRef: ""
      },
      {
        id: "0-detection_method",
        predicate: "dcterms:subject",
        type: "pharmaWien:physicalDetectionMethod",
        //subjectType: "physical_detection_method",
        label: "Physical detection method:",
        value: "",
        required: false,
        visible: false,
        freefield: true,
        multiple: true,
        ontology: "bao",
        ontClass: "BAO_0000035",
        topId: "BAO_0000035",
        component: "ext-service",
        category: ["assayDetection"],
        description: "Physical detection method",
        info: "",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0000035"
      },
      {
        id: "0-detection_instrument",
        predicate: "dcterms:subject",
        type: "pharmaWien:physicalDetectionInstrument",
        //subjectType: "detection_instrument",
        label: "Detection instrument:",
        value: "",
        required: false,
        visible: false,
        freefield: true,
        multiple: true,
        ontology: "bao",
        ontClass: "BAO_0000697",
        topId: "BAO_0000697",
        component: "ext-service",
        category: ["assayDetection"],
        description: "Detection instrument",
        info: "",
        infoRef: "http://www.bioassayontology.org/bao#BAO_0000697"
      }
    ];
    
    const predicateOrder = [
      "dcterms:type",
      "edm:hasType",
      "schema:genre",
    
      "dce:title",
      "role",
      "bf:note",
      "bf:tableOfContents",
    
      "dcterms:language",
      "schema:subtitleLanguage",
      "dce:subject",
      "dcterms:subject",
    
      "dcterms:date",
      "dcterms:created",
      "dcterms:modified",
      "dcterms:available",
      "dcterms:issued",
      "dcterms:valid",
      "dcterms:dateAccepted",
      "dcterms:dateCopyrighted",
      "dcterms:dateSubmitted",
      "rdau:P60071",
      "phaidra:dateAccessioned",
      "date",
    
      "edm:rights",
      "dce:rights",
      "dcterms:provenance",
    
      "dcterms:spatial",
      "vra:placeOfCreation",
      "vra:placeOfRepository",
      "vra:placeOfSite",
      "spatial",
    
      "schema:numberOfPages",
      "bf:soundCharacteristic",
      "bf:supplementaryContent",
      "bf:awards",
      "dcterms:audience",
      "rdau:P60059",
    
      "ebucore:filename",
      "ebucore:hasMimeType",
    
      "opaque:cco_accessionNumber",
      "bf:shelfMark",
      "bf:physicalLocation",
    
      "vra:hasInscription",
      "vra:material",
      "vra:hasTechnique",
      "dce:format",
      "rdau:P60048",
      "schema:width",
      "schema:height",
      "schema:depth",
      "schema:weight",
      "schema:duration",
    
      "rdau:P60193",
      "bf:provisionActivity",
      "rdau:P60227",
      "frapo:hasFundingAgency",
      "frapo:isOutputOf",
      "rdax:P00009",
      "citation"
    ];
    
    export default {
      getFields: function() {
        return fields;
      },
    
      getEditableFields: function() {
        var editable = fields.filter(item => !item.readonly);
        // hack: some bug in vuetify autocomplete can't handle the value property
        var newarr = [];
        for (var i = 0; i < editable.length; i++) {
          var field = JSON.parse(JSON.stringify(editable[i]));
          delete field["value"];
          newarr.push(field);
        }
        return newarr;
      },
      getField: function(id, ordergroup) {
        for (var i = 0; i < fields.length; i++) {
          if (fields[i]["id"] === id) {
            var field = JSON.parse(JSON.stringify(fields[i]));
            field.id = field.id + "_" + uuid.generate();
            // field.ordergroup = ordergroup
            return field;
          }
        }
      },
      getFieldbySubject: function(subject) {
        for (var i = 0; i < fields.length; i++) {
          if (fields[i]["type"] === subject) {
            var field = JSON.parse(JSON.stringify(fields[i]));
            field.id = field.id + "_" + uuid.generate();
            return field;
          }
        }
      },
      getFieldsLabelsbyCateg: function(categ) {
        var ar = [];
    
        for (var i = 0; i < fields.length; i++) {
          if (fields[i]["category"]) {
            if (fields[i]["category"][0] === categ) {
              ar.push({
                label: fields[i].description,
                id: fields[i].infoRef
              });
            }
          }
        }
        return ar;
      },
      getPredicateOrder: function() {
        return predicateOrder;
      }
    };