sbol-data-examples/src/main/java/org/sbolstandard/examples/DataTreeCreator.java
public static DocumentRoot<QName> makeSBOL2Document()
  {
    NestedDocument<QName> instantiationLacI=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,
            sbolExample.namespacedUri("module_LacI_inverter/LacI_instantiation"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "LacI")
            ));

    NestedDocument<QName> instantiationIPTG=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,

            sbolExample.namespacedUri("module_LacI_inverter/IPTG"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "IPTG")
            ));

    NestedDocument<QName> instantiationIPTGLacI=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,
            sbolExample.namespacedUri("module_LacI_inverter/IPTG_LacI_complex"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "IPTG LacI complex")
            ));
    NestedDocument<QName> instantiationpLac=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,

            sbolExample.namespacedUri("module_LacI_inverter/pLac_instantiation"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "pLac promoter")
            ));
    NestedDocument<QName> instantiationcTetR=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,

            sbolExample.namespacedUri("module_LacI_inverter/cTetR_instantiation"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "cTetR")
            ));
    NestedDocument<QName> instantiationTetR=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,

            sbolExample.namespacedUri("module_LacI_inverter/TetR_instantiation"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "TetR")
            ));


    NestedDocument<QName> interactionIPTGBinding=NestedDocument(
            Sbol2Terms.module.interaction,

            sbolExample.namespacedUri("module_LacI_inverter/interaction/IPTG_binding"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "IPTG Binding"),
                    NamedProperty(RdfTerms.rdfType, URI.create("http://purl.obolibrary.org/obo/non_covalent_binding")),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/IPTG_Binding/LacI_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role,URI.create("http://purl.obolibrary.org/obo/reactant")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationLacI.getIdentity())
                                    )
                            )
                    ),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/IPTG_Binding/IPTGLacI_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/product")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationIPTGLacI.getIdentity())
                                    )
                            )),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/IPTG_Binding/IPTG_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/reactant")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationIPTG.getIdentity())
                                    )
                            )
                    )
            )
    );



    NestedDocument<QName> interactionLacIRepression=NestedDocument(
            Sbol2Terms.module.interaction,
            sbolExample.namespacedUri("module_LacI_inverter/interaction/LacI_repression"),
            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "LacI Repression"),
                    NamedProperty(RdfTerms.rdfType, URI.create("http://purl.obolibrary.org/obo/repression")),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/LacI_repression/LacI"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role,URI.create("http://purl.obolibrary.org/obo/repressor")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationLacI.getIdentity())
                                    )
                            )
                    ),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/LacI_repression/pLac"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/repressed")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationpLac.getIdentity())
                                    )
                            )
                    )
            )
    );


    NestedDocument<QName> interactionTetRTranscriptionTranslation=NestedDocument(
            Sbol2Terms.module.interaction,

            sbolExample.namespacedUri("module_LacI_inverter/interaction/TetR_transcription_translation"),
            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "TetR Transcription Translation"),
                    NamedProperty(RdfTerms.rdfType, URI.create("http://purl.obolibrary.org/obo/genetic_production")),
                    NamedProperty(RdfTerms.rdfType, URI.create("http://made.up.terms.org/unicorns")),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/TetR_transcription_translation/TetR_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role,URI.create("http://purl.obolibrary.org/obo/product")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationTetR.getIdentity())
                                    )
                            )
                    ),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/TetR_transcription_translation/cTetR_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/transcribed")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationcTetR.getIdentity())
                                    )
                            )
                    ),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/TetR_transcription_translation/pLac_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/modifier")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationpLac.getIdentity())
                                    )
                            )
                    )
            )
    );



    TopLevelDocument<QName> modelLacIInverter=TopLevelDocument(
            NamespaceBindings(utah),
            Sbol2Terms.model.model,
            sbolExample.namespacedUri("model/LacI_inverter"),
            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "LacI Inverter Model"),
                    NamedProperty(Sbol2Terms.model.source,URI.create("http://www.async.ece.utah.edu/LacI_Inverter.xml")),
                    NamedProperty(Sbol2Terms.model.language,"SBML"),
                    NamedProperty(Sbol2Terms.model.framework,"ODE"),
                    NamedProperty(Sbol2Terms.model.role,"simulation")
            )
    );

    TopLevelDocument<QName> moduleLacIInverter=TopLevelDocument(
            Sbol2Terms.module.module,
            sbolExample.namespacedUri("module/LacI_inverter"),
            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "LacI Inverter"),
                    NamedProperty(Sbol2Terms.module.hasInteraction, interactionIPTGBinding),
                    NamedProperty(Sbol2Terms.module.hasInteraction, interactionLacIRepression),
                    NamedProperty(Sbol2Terms.module.hasInteraction, interactionTetRTranscriptionTranslation),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationLacI),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationIPTG),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationIPTGLacI),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationpLac),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationcTetR),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationTetR),
                    NamedProperty(Sbol2Terms.module.hasModel,modelLacIInverter.getIdentity())
            )
    );

    return DocumentRoot(
            NamespaceBindings(RdfTerms.rdf, SbolTerms.sbol2, partsRegistry, sbolExample, obo),
            TopLevelDocuments(moduleLacIInverter,modelLacIInverter));
  }
public static DocumentRoot<QName> makeSBOL2Document()
  {
    NestedDocument<QName> instantiationLacI=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,
            sbolExample.namespacedUri("module_LacI_inverter/LacI_instantiation"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "LacI")
            ));

    NestedDocument<QName> instantiationIPTG=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,

            sbolExample.namespacedUri("module_LacI_inverter/IPTG"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "IPTG")
            ));

    NestedDocument<QName> instantiationIPTGLacI=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,
            sbolExample.namespacedUri("module_LacI_inverter/IPTG_LacI_complex"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "IPTG LacI complex")
            ));
    NestedDocument<QName> instantiationpLac=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,

            sbolExample.namespacedUri("module_LacI_inverter/pLac_instantiation"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "pLac promoter")
            ));
    NestedDocument<QName> instantiationcTetR=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,

            sbolExample.namespacedUri("module_LacI_inverter/cTetR_instantiation"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "cTetR")
            ));
    NestedDocument<QName> instantiationTetR=NestedDocument(
            Sbol2Terms.instantiation.componentInstantiation,

            sbolExample.namespacedUri("module_LacI_inverter/TetR_instantiation"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "TetR")
            ));


    NestedDocument<QName> interactionIPTGBinding=NestedDocument(
            Sbol2Terms.module.interaction,

            sbolExample.namespacedUri("module_LacI_inverter/interaction/IPTG_binding"),

            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "IPTG Binding"),
                    NamedProperty(RdfTerms.rdfType, URI.create("http://purl.obolibrary.org/obo/non_covalent_binding")),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/IPTG_Binding/LacI_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role,URI.create("http://purl.obolibrary.org/obo/reactant")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationLacI.getIdentity())
                                    )
                            )
                    ),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/IPTG_Binding/IPTGLacI_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/product")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationIPTGLacI.getIdentity())
                                    )
                            )),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/IPTG_Binding/IPTG_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/reactant")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationIPTG.getIdentity())
                                    )
                            )
                    )
            )
    );



    NestedDocument<QName> interactionLacIRepression=NestedDocument(
            Sbol2Terms.module.interaction,
            sbolExample.namespacedUri("module_LacI_inverter/interaction/LacI_repression"),
            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "LacI Repression"),
                    NamedProperty(RdfTerms.rdfType, URI.create("http://purl.obolibrary.org/obo/repression")),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/LacI_repression/LacI"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role,URI.create("http://purl.obolibrary.org/obo/repressor")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationLacI.getIdentity())
                                    )
                            )
                    ),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/LacI_repression/pLac"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/repressed")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationpLac.getIdentity())
                                    )
                            )
                    )
            )
    );


    NestedDocument<QName> interactionTetRTranscriptionTranslation=NestedDocument(
            Sbol2Terms.module.interaction,

            sbolExample.namespacedUri("module_LacI_inverter/interaction/TetR_transcription_translation"),
            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "TetR Transcription Translation"),
                    NamedProperty(RdfTerms.rdfType, URI.create("http://purl.obolibrary.org/obo/genetic_production")),
                    NamedProperty(RdfTerms.rdfType, URI.create("http://made.up.terms.org/unicorns")),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/TetR_transcription_translation/TetR_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role,URI.create("http://purl.obolibrary.org/obo/product")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationTetR.getIdentity())
                                    )
                            )
                    ),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/TetR_transcription_translation/cTetR_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/transcribed")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationcTetR.getIdentity())
                                    )
                            )
                    ),
                    NamedProperty(Sbol2Terms.module.hasParticipation,
                            NestedDocument(
                                    Sbol2Terms.module.participation,
                                    partsRegistry.namespacedUri("module_LacI_inverter/interaction/TetR_transcription_translation/pLac_participation"),
                                    NamedProperties(
                                            NamedProperty(Sbol2Terms.module.role, URI.create("http://purl.obolibrary.org/obo/modifier")),
                                            NamedProperty(Sbol2Terms.module.participant, instantiationpLac.getIdentity())
                                    )
                            )
                    )
            )
    );



    TopLevelDocument<QName> modelLacIInverter=TopLevelDocument(
            NamespaceBindings(utah),
            Sbol2Terms.model.model,
            sbolExample.namespacedUri("model/LacI_inverter"),
            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "LacI Inverter Model"),
                    NamedProperty(Sbol2Terms.model.source,URI.create("http://www.async.ece.utah.edu/LacI_Inverter.xml")),
                    NamedProperty(Sbol2Terms.model.language,"SBML"),
                    NamedProperty(Sbol2Terms.model.framework,"ODE"),
                    NamedProperty(Sbol2Terms.model.role,"simulation")
            )
    );

    TopLevelDocument<QName> moduleLacIInverter=TopLevelDocument(
            Sbol2Terms.module.module,
            sbolExample.namespacedUri("module/LacI_inverter"),
            NamedProperties(
                    NamedProperty(Sbol2Terms.documented.name, "LacI Inverter"),
                    NamedProperty(Sbol2Terms.module.hasInteraction, interactionIPTGBinding),
                    NamedProperty(Sbol2Terms.module.hasInteraction, interactionLacIRepression),
                    NamedProperty(Sbol2Terms.module.hasInteraction, interactionTetRTranscriptionTranslation),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationLacI),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationIPTG),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationIPTGLacI),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationpLac),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationcTetR),
                    NamedProperty(Sbol2Terms.instantiation.hasComponentInstantiation, instantiationTetR),
                    NamedProperty(Sbol2Terms.module.hasModel,modelLacIInverter.getIdentity())
            )
    );

    return DocumentRoot(
            NamespaceBindings(RdfTerms.rdf, SbolTerms.sbol2, partsRegistry, sbolExample, obo),
            TopLevelDocuments(moduleLacIInverter,modelLacIInverter));
  }
Creates an example {@link DocumentRoot} object with data from the SBOL2.0 proposed data model.
Included SBOL objects are Module, Interaction, Participation, ComponentInstantiation and Model.
@return {@link DocumentRoot}