Skip to content

Implementing investigation types

Felix Engel edited this page Jul 15, 2016 · 1 revision

This page describes steps in writing RDFBones extensions implementing new types of investigations.

By way of illustration, it is assumed here that an investigation type called "investigation type 1" is being implemented in an extension called "Investigatino type 1" with uri http://w3id.org/rdfbones/extensions/extension_1 and namespace prefix "ext":

<?xml version="1.0"?>
<rdf:RDF xmlns="http://w3id.org/rdfbones/extensions/InvestigationType1#"
     xml:base="http://w3id.org/rdfbones/extensions/InvestigationType1"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:vitro="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:xml="http://www.w3.org/XML/1998/namespace"
     xmlns:vivo="http://vivoweb.org/ontology/core#"
     xmlns:obo="http://purl.obolibrary.org/obo/"
    <owl:Ontology rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1">
        <vitro:ontologyPrefixAnnot rdf:datatype="http://www.w3.org/2000/01/rdf-schema#Literal">ext</vitro:ontologyPrefixAnnot>
        <rdfs:label xml:lang="en">Investigation type 1</rdfs:label>
    </owl:Ontology>

#Investigation type class

Create a subclass of obo:OBI_0000066 ('Investigation') or one of its subclasses (cf. Investigations). Here, this class is called ext:InvestigationType1.

    <owl:Class rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#InvestigationType1">
        <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/OBI_0000066"/>
        <obo:IAO_0000112 xml:lang="en">Examples of usage. Target group: people trying to understand the ontology and/or developing new ontologies.</obo:IAO_0000112>
        <obo:IAO_0000115 xml:lang="en">Short summary of class content to be displayed in class hieararchy window. Target group: System administrators.</obo:IAO_0000115>
        <vitro:descriptionAnnot xml:lang="en">Detailed description of class contents and usage. Target group: people trying to understand the ontology and/or developing new ontologies.</vitro:descriptionAnnot>
        <rdfs:label xml:lang="en">Investigation type 1</rdfs:label>
    </owl:Class>

#Testable hypotheses

Define hypotheses

Decide if the investigation type to be implemented tests a hypothesis or not (cf. Investigation planning). If so, define a number of instances of class obo:OBI_0001908 ('Testable hypothesis') as input for the planning process (cf. Investigation planning). You can either choose existing instances from other extensions or create new ones if the hypotheses you are looking for are not represented anywhere. Here, an instance called 'Hypothesis 1' is created.

    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#Hypothesis_1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0001908"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Hypothesis 1</rdfs:label>
    </owl:NamedIndividual>

Relate hypotheses to relevant entities

If you created new instances, decide for each of them which subclasses of class obo:BFO_0000001 ('Entity') represent concepts that are relevant to the hypothesis. You can either choose existing classes from the core ontology and from other extensions or create new ones. For each instance representing a hypothesis (here: 'Hypothesis 1'), create restrictions on the object property obo:IAO_0000136 ('is about') with the relevant subclasses of obo:BFO_0000001 ('Entity') in the ranges (cf Investigation planning). Here, 'Hypothesis 1' is about exactly one frontal bone:

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#Hypothesis_1">
        <rdf:type>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/IAO_0000136"/>
                <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/FMA_52734"/>
            </owl:Restriction>
        </rdf:type>
        <rdf:type>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/IAO_0000136"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="http://purl.obolibrary.org/obo/FMA_52734"/>
            </owl:Restriction>
        </rdf:type>
    </rdf:Description>

Study design

Created study design class

Create an instance of obo:OBI_0500000 ('Study design') or one of its subclasses in order to define a study design that is unique to the investigation type (cf. Investigation planning). Here, the newly created instance is called 'Study design investigation type 1'.

    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0500000"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Study design investigation type 1</rdfs:label>
    </owl:NamedIndividual>

Assay specifications

Define assay specifications

Decide which assays the investigation type needs. Definitions for assays may already exist, including specifications. Alternatively, new assays need to be defined. In this case, new instances of the class obo:OBI_0001896 ('Investigation assay specification') need to be created for these assays (cf. Study designs). Here, a new assay specification called 'Specification assay 1' is created:

    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#SpecificationAssay1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0001896"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Specification assay 1</rdfs:label>
    </owl:NamedIndividual>

Relate assay specifications to study design

Relate the assay specifications to the study design with the object property obo:BFO_0000050 ('part of', cf. Study designs):

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#SpecificationAssay1">
        <obo:BFO_0000050 rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
    </rdf:Description>

This process is the same for all instances that are part of the study design, no matter if they are newly created or had existed before.

Specimen collection objectives

Define specimen collection objectives

Specify one or more instances of class obo:OBI_0000684 ('Specimen collection objective') that characterise the requirements of the investigation type regarding the material to be studied (cf. Study designs. These instances can either be pre-existing or newly created. Here, a new specimen collection objective called 'Specimen collection objective 1' is created:

    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#SpecimenCollectionObjective1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0000684"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Specimen collection objective 1</rdfs:label>
    </owl:NamedIndividual>

Relate specimen collection objectives to study design

Relate the specimen collection objectives to the study design with the object property obo:BFO_0000050 ('part of', cf. Study designs):

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#SpecimenCollectionObjective1">
        <obo:BFO_0000050 rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
    </rdf:Description>

This process is the same for all instances that are part of the study design, no matter if they are newly created or had existed before.

Data specifications

Define data specifications

Specify one or more instances of class obo:OBI_0001892 ('Specification of data to be generated in an investigation') that characterise the data that are generated by the investigation type (cf. Study designs). These instances can either be pre-existing or newly created. Here, a new specificatin called 'Data specification 1' is created:

    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#DataSpecification1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0001892"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Data specification 1</rdfs:label>
    </owl:NamedIndividual>

Relate data specifications to study design

Relate the data specifications to the study design with the object property obo:BFO_0000050 ('part of', cf. Study designs):

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#DataSpecification1">
        <obo:BFO_0000050 rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
    </rdf:Description>

This process is the same for all instances that are part of the study design, no matter if they are newly created or had existed before.

Data transformation objectives

Define data transformation objectives

Specify one or more instances of class obo:OBI_0200166 ('Data transformation objective') that characterise manipulations of the data specified above, which carried out as part of the investigation type (cf. Study designs). These instances can either be pre-existing or newly created. Here, a new objective called 'Data transformation objective 1' is created as an instance of class obo:OBI_0200167 ('Data normalization objective') - a subclass of class obo:OBI_0200166 ('Data transformation objective'):

    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#DataTransformationObjective1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0200167"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Data transformation objective 1</rdfs:label>
    </owl:NamedIndividual>

Relate data transformation objectives to study design

Relate the data transformation objectives to the study design with the object property obo:BFO_0000050 ('part of', cf. Study designs):

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#DataTransformationObjective1">
        <obo:BFO_0000050 rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
    </rdf:Description>

This process is the same for all instances that are part of the study design, no matter if they are newly created or had existed before.

Protocols

Define protocols

Specify one or more instances of class obo:OBI_0000272 ('Protocol') that represent protocols defining the investigation type (cf. Study designs). These instances can either be pre-existing or newly created. Here, a new protocol called 'Protocol 1' is created:

    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#Protocol1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0000272"/>
        <vivo:description xml:lang="en">Detailed rendering of protocol contents.</vivo:description>
        <rdfs:label xml:lang="en">Protocol 1</rdfs:label>
    </owl:NamedIndividual>

Relate protocols to study design

Relate the protocols to the study design with the object property obo:BFO_0000050 ('part of', cf. Study designs):

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#Protocol1">
        <obo:BFO_0000050 rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
    </rdf:Description>

This process is the same for all instances that are part of the study design, no matter if they are newly created or had existed before.

Variables

Define variables

Declare the variables occurring in the investigation type by specifying instances of the classes obo:OBI_0000750 ('Study design independent variable'), obo:OBI_0000751 ('Study design dependent variable') and obo:OBI_0000785 ('Study design controlled variable'). These instances can either be pre-existing or newly created (cf. Study designs). Here, three new variables are created, 'Independent variable 1', 'Dependent variable 1' and 'Controlled variable 1':

    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#IndependentVariable1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0000750"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Dependent variable 1</rdfs:label>
    </owl:NamedIndividual>
    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#DependentVariable1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0000751"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Dependent variable 1</rdfs:label>
    </owl:NamedIndividual>
    <owl:NamedIndividual rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#ControlledVariable1">
        <rdf:type rdf:resource="http://purl.obolibrary.org/obo/OBI_0000785"/>
        <vivo:description xml:lang="en">Detailed description. Target group: Users.</vivo:description>
        <rdfs:label xml:lang="en">Controlled variable 1</rdfs:label>
    </owl:NamedIndividual>

Relate variables to study design

Relate the variables to the study design with the object property obo:BFO_0000050 ('part of', cf. Study designs):

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#IndependentVariable1">
        <obo:BFO_0000050 rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#DependentVariable1">
        <obo:BFO_0000050 rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#ControlledVariable1">
        <obo:BFO_0000050 rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
    </rdf:Description>

This process is the same for all instances that are part of the study design, no matter if they are newly created or had existed before.

Planning class

Create a planning class

Create a subclass of obo:OBI_0000339 ('Planning') in order to define specifications relating to the planning process of the new investigation type (cf. Investigation planning). Here, the newly created subclass is called ext:PlanningInvestigationType1.

    <owl:Class rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#PlanningInvestigationType1">
        <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/OBI_0000339"/>
        <obo:IAO_0000112 xml:lang="en">Examples of usage. Target group: people trying to understand the ontology and/or developing new ontologies.</obo:IAO_0000112>
        <obo:IAO_0000115 xml:lang="en">Short summary of class content to be displayed in class hieararchy window. Target group: System administrators.</obo:IAO_0000115>
        <vitro:descriptionAnnot xml:lang="en">Detailed description of class contents and usage. Target group: people trying to understand the ontology and/or developing new ontologies.</vitro:descriptionAnnot>
        <rdfs:label xml:lang="en">Planning investigation type 1</rdfs:label>
    </owl:Class>

Relate the planning class to the investigation class

Create a restriction for the planning class on the object property obo:BFO_0000050 ('part of') with the investigation type class in the range (cf. Investigations).

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#PlanningInvestigationType1">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000050"/>
                <owl:allValuesFrom rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#InvestigationType1"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000050"/>
                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
    </rdf:Description>

Relate the planning class to hypotheses

Create restrictions for the planning class on the object property obo:OBI_0000293 ('has_specified_input') with the hypotheses defined above in the ranges.

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#PlanningInvestigationType1">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/OBI_0000293"/>
                <owl:hasValue rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#Hypothesis_1"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </rdf:Description>

Relate the planning class to the study design

Create a restriction for the planning class on the object property obo:OBI_0000299 ('has specified output') with the study design defined above in the range.

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#PlanningInvestigationType1">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/OBI_0000299"/>
                <owl:hasValue rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#StudyDesignInvestigationType1"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </rdf:Description>

Study design execution class

Create a subclass of obo:OBI_0000471 ('Study design execution') in order to define specifications relating to the execution of an investigation of the type to be implemented (cf. Investigation planning). Here, the newly created subclass is called ext:ExecutionInvestigationType1.

    <owl:Class rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#ExecutionInvestigationType1">
        <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/OBI_0000471"/>
        <obo:IAO_0000112 xml:lang="en">Examples of usage. Target group: people trying to understand the ontology and/or developing new ontologies.</obo:IAO_0000112>
        <obo:IAO_0000115 xml:lang="en">Short summary of class content to be displayed in class hieararchy window. Target group: System administrators.</obo:IAO_0000115>
        <vitro:descriptionAnnot xml:lang="en">Detailed description of class contents and usage. Target group: people trying to understand the ontology and/or developing new ontologies.</vitro:descriptionAnnot>
        <rdfs:label xml:lang="en">Execution Investigation Type 1</rdfs:label>
    </owl:Class>

Relate the execution class to the investigation type class

Create a restriction for the study design execution class on the object property obo:BFO_0000050 ('part of') with the investigation type class in the range.

    <rdf:Description rdf:about="http://w3id.org/rdfbones/extensions/InvestigationType1#ExecutionInvestigationType1">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000050"/>
                <owl:allValuesFrom rdf:resource="http://w3id.org/rdfbones/extensions/InvestigationType1#InvestigationType1"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000050"/>
                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
            </owl:Restriction>
        </rdfs:subClassOf>
    </rdf:Description>
Clone this wiki locally