All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geneontology.obographs.model.meta.PropertyValue Maven / Gradle / Ivy

package org.geneontology.obographs.model.meta;

import java.util.List;

import org.geneontology.obographs.model.Meta;

/**
 * Associates the container object with a value via a property.
 * 
 * For example, a node representing an OWL class may contain a {@link Meta} object
 * containing a PropertyValue mapping to a textual definition string via a definition property.
 * 
 * Broadly, there are two categories of implementing class:
 * 
 *  1. PropertyValues corresponding to a specific explicitly modeled property type (e.g synonym)
 *  2. generic {@link BasicPropertyValue}s - anything property not explicitly modeled
 *  
 * A PropertyValue is minimally a tuple `(pred,value)`. However, each sub tuple may also
 * be "annotated" with additional metadata (this corresponds to an Axiom Annotation in OWL)
 * 
 *  - Any tuple can be supported by an array of xrefs.
 *  - Some implementing classes may choose to model additional explicit annotations (e.g. {@link SynonymPropertyValue})
 * 
 * @author cjm
 *
 */
public interface PropertyValue {

    /**
     * Predicates correspond to OWL properties. Like all preds in this datamodel,
     * a pred is represented as a String which denotes a CURIE
     * 
     * @return the pred
     */
    public String getPred();

    /**
     * An array denoting objects that support the property value assertion
     * 
     * @return the xrefs
     */
    public List getXrefs();

    /**
     * The value of the property-value
     * 
     * @return the val
     */
    public String getVal();



    /**
     * @return the meta
     */
    public Meta getMeta();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy