org.LexGrid.LexBIG.LexBIGService
Interface CodedNodeGraph

All Superinterfaces:
java.io.Serializable

public interface CodedNodeGraph
extends java.io.Serializable

A virtual graph where the edges represent associations and the nodes represent coded entries. A CodedNodeGraph describes a graph that can be combined with other graphs, queried or resolved into an actual graph rendering.


Method Summary
 java.lang.Boolean areCodesRelated(NameAndValue association, ConceptReference sourceCode, ConceptReference targetCode, boolean directOnly)
          Determine whether there is an directed edge (or transitive closure of an edge) from the source code to the target code in this graph.
 CodedNodeGraph intersect(CodedNodeGraph graph)
          Return the set of nodes and associations that are present in both graphs.
 java.lang.Boolean isCodeInGraph(ConceptReference code)
          Determine whether the supplied code is in the graph.
 ConceptReferenceList listCodeRelationships(ConceptReference sourceCode, ConceptReference targetCode, boolean directOnly)
          Return a list of all of the associations in the graph that have the supplied source and target codes or, if directOnly is false, all associations whose transitive closure has the supplied associations.
 ConceptReferenceList listCodeRelationships(ConceptReference sourceCode, ConceptReference targetCode, int distance)
          Return a list of all of the associations in the graph that have the supplied source and target codes based on distance between them.
 ResolvedConceptReferenceList resolveAsList(ConceptReference graphFocus, boolean resolveForward, boolean resolveBackward, int resolveCodedEntryDepth, int resolveAssociationDepth, LocalNameList propertyNames, CodedNodeSet.PropertyType[] propertyTypes, SortOptionList sortOptions, int maxToReturn)
          Resolve all of the coded nodes in the list, sorting by the supplied property (if any), resolving the supplied properties, resolving coded entries to the supplied depth and resolving associations to the supplied depth.
 ResolvedConceptReferenceList resolveAsList(ConceptReference graphFocus, boolean resolveForward, boolean resolveBackward, int resolveCodedEntryDepth, int resolveAssociationDepth, LocalNameList propertyNames, CodedNodeSet.PropertyType[] propertyTypes, SortOptionList sortOptions, LocalNameList filterOptions, int maxToReturn)
          Resolve all of the coded nodes in the list, sorting by the supplied property (if any), resolving the supplied properties, resolving coded entries to the supplied depth, resolving associations to the supplied depth, and allowing for additional filters to be applied against the returned items.
 ResolvedConceptReferenceList resolveAsList(ConceptReference graphFocus, boolean resolveForward, boolean resolveBackward, int resolveCodedEntryDepth, int resolveAssociationDepth, LocalNameList propertyNames, CodedNodeSet.PropertyType[] propertyTypes, SortOptionList sortOptions, LocalNameList filterOptions, int maxToReturn, boolean keepLastAssociationLevelUnresolved)
          Resolve all of the coded nodes in the list, sorting by the supplied property (if any), resolving the supplied properties, resolving coded entries to the supplied depth, resolving associations to the supplied depth, and allowing for additional filters to be applied against the returned items.
 CodedNodeGraph restrictToAssociations(NameAndValueList association, NameAndValueList associationQualifiers)
          Restrict the graph to the nodes that participate as a source or target of the named association and, if supplied, the named association qualifiers.
 CodedNodeGraph restrictToCodes(CodedNodeSet codes)
          Return a graph that contains only the codes that are present in the supplied list, and all edges that still have a source and target code remaining.
 CodedNodeGraph restrictToCodeSystem(java.lang.String codingScheme)
          Restrict the graph to codes (source and target) that originate from the supplied code system.
 CodedNodeGraph restrictToDirectionalNames(NameAndValueList directionalNames, NameAndValueList associationQualifiers)
          Restrict the graph to the nodes that participate as a source or target of an association whose directional name matches the one provided and, if supplied, the named association qualifiers.
 CodedNodeGraph restrictToSourceCodes(CodedNodeSet codes)
          Restrict the graph to associations that have one of the codes in the supplied list as source codes.
 CodedNodeGraph restrictToSourceCodeSystem(java.lang.String codingScheme)
          Restrict the graph to edges that have codes from the specified code system as a source.
 CodedNodeGraph restrictToTargetCodes(CodedNodeSet codes)
          Restrict the graph to associations that have one of the codes in the supplied list as target codes.
 CodedNodeGraph restrictToTargetCodeSystem(java.lang.String codingScheme)
          Restrict the graph to edges that have codes from the specified code system as a target.
 CodedNodeSet toNodeList(ConceptReference graphFocus, boolean resolveForward, boolean resolveBackward, int resolveAssociationDepth, int maxToReturn)
          Transform the graph into a simple of list of code references, removing all association information.
 CodedNodeGraph union(CodedNodeGraph graph)
          Return the union of the two graphs.
 

Method Detail

areCodesRelated

java.lang.Boolean areCodesRelated(NameAndValue association,
                                  ConceptReference sourceCode,
                                  ConceptReference targetCode,
                                  boolean directOnly)
                                  throws LBInvocationException,
                                         LBParameterException
Determine whether there is an directed edge (or transitive closure of an edge) from the source code to the target code in this graph. The last parameter determines whether only direct associations are considered or whether the transitive closure of the edge is used.

Parameters:
association - Identifies the association to be tested. The name and value will be compared against the id and URI of supported associations for participating coding schemes.
sourceCode - Source code system/code to be tested.
targetCode - Target code system/code to be tested.
directOnly - True means only asserted association instances are tested. False means that, if the association is defined as transitive, the transitive closure of the association instances are tested.
Returns:
True if a directed edge exists; otherwise False.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

intersect

CodedNodeGraph intersect(CodedNodeGraph graph)
                         throws LBInvocationException,
                                LBParameterException
Return the set of nodes and associations that are present in both graphs.

Parameters:
graph - Identifies the CodedNodeGraph to be intersected with.
Returns:
A new CodedNodeGraph representing the intersection result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

isCodeInGraph

java.lang.Boolean isCodeInGraph(ConceptReference code)
                                throws LBInvocationException,
                                       LBParameterException
Determine whether the supplied code is in the graph.

Parameters:
code - Identifies the coding scheme and code to test.
Returns:
True if the code is present; otherwise False.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

listCodeRelationships

ConceptReferenceList listCodeRelationships(ConceptReference sourceCode,
                                           ConceptReference targetCode,
                                           boolean directOnly)
                                           throws LBInvocationException,
                                                  LBParameterException
Return a list of all of the associations in the graph that have the supplied source and target codes or, if directOnly is false, all associations whose transitive closure has the supplied associations.

Parameters:
sourceCode - Source end of the association. If null, all sources for the specified target are included.
targetCode - Target end of the association. If null, all targets for the specified source are included.
directOnly - True means only direct associations are tested. False means that the transitive closure of transitive (and undefined) associations are tested for membership.

Note that while the class of the returned value appears to imply concepts only, each contained reference inherits from the more general CodedNodeReference and is capable of representing any type of node contained by the graph.

Returns:
The list of code references for matching associations.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

listCodeRelationships

ConceptReferenceList listCodeRelationships(ConceptReference sourceCode,
                                           ConceptReference targetCode,
                                           int distance)
                                           throws LBInvocationException,
                                                  LBParameterException
Return a list of all of the associations in the graph that have the supplied source and target codes based on distance between them. Distance (or the No. of edges) for a direct association between a source and target codes is 1. Values if distance should be equal or greater than 1, otherwise exception is thrown. Resulting list is not based on associations source & target have, but on distance only.

Parameters:
sourceCode - Source end of the association. If null, all sources for the specified target are included.
targetCode - Target end of the association. If null, all targets for the specified source are included.
distance - Distance (# of edges) source and target codes must have in between. Must be positive & greater than zero.
Returns:
The list of node references for matching associations.

Note that while the class of the returned value appears to imply concepts only, each contained reference inherits from the more general CodedNodeReference and is capable of representing any type of node contained by the graph.

Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

resolveAsList

ResolvedConceptReferenceList resolveAsList(ConceptReference graphFocus,
                                           boolean resolveForward,
                                           boolean resolveBackward,
                                           int resolveCodedEntryDepth,
                                           int resolveAssociationDepth,
                                           LocalNameList propertyNames,
                                           CodedNodeSet.PropertyType[] propertyTypes,
                                           SortOptionList sortOptions,
                                           int maxToReturn)
                                           throws LBInvocationException,
                                                  LBParameterException
Resolve all of the coded nodes in the list, sorting by the supplied property (if any), resolving the supplied properties, resolving coded entries to the supplied depth and resolving associations to the supplied depth.

Parameters:
graphFocus - Set the top or "focus" node of the graph. If present, only the nodes that are reachable via this node will be returned. If null, nodes with no incoming or outgoing associations are used as starting points for navigation of forward and reverse relationships, respectively.
resolveForward - True means resolve in the direction of source to target.
resolveBackward - True means resolve in the direction of target to source.
resolveCodedEntryDepth - Depth in the graph to resolve coded entries. - 1 means don't resolve anything - just return code references, 0 means resolve just the root nodes, 1 means resolve 1 deep, etc.
resolveAssociationDepth - Number of hops to resolve associations. 0 means leave all associations unresolved, 1 means immediate neighbors, etc. -1 means follow the entire closure of the graph.
propertyNames - Local names of properties to resolve. If not empty and not null, only properties matching the given names are included for resolved nodes.
propertyTypes - Indicates whether to resolve only specific property categories, regardless of the assigned name. Any of the enumerated PropertyType values can be specified. If not empty and not null, only properties matching the given types are included for resolved nodes.
sortOptions - List of sort options to apply during resolution. If supplied, the sort algorithms will be applied in the order provided. Any algorithms not valid to be applied in context of node set iteration, as specified in the sort extension description, will result in a parameter exception. Available algorithms can be retrieved through the LexBIGService getSortExtensions() method after being defined to the LexBIGServiceManager extension registry.
maxToReturn - Maximum number of entries to return; a value less than 1 indicates to return unlimited entries (to the limit specified in the runtime configuration file).
Returns:
A list of code references, up to the maximum number specified. Note that in the event that a maximum number 'n' is specified and exactly 'n' items are returned, there is currently no flag or notification provided to indicate whether all available items were returned.

Each entry will include basic information for the node along with an embedded object (e.g. concept) populated with requested properties.

Note that while the class of the returned value appears to imply concepts only, each contained reference inherits from the more general CodedNodeReference and is capable of representing any type of node contained by the graph.

Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

resolveAsList

ResolvedConceptReferenceList resolveAsList(ConceptReference graphFocus,
                                           boolean resolveForward,
                                           boolean resolveBackward,
                                           int resolveCodedEntryDepth,
                                           int resolveAssociationDepth,
                                           LocalNameList propertyNames,
                                           CodedNodeSet.PropertyType[] propertyTypes,
                                           SortOptionList sortOptions,
                                           LocalNameList filterOptions,
                                           int maxToReturn)
                                           throws LBInvocationException,
                                                  LBParameterException
Resolve all of the coded nodes in the list, sorting by the supplied property (if any), resolving the supplied properties, resolving coded entries to the supplied depth, resolving associations to the supplied depth, and allowing for additional filters to be applied against the returned items.

Parameters:
graphFocus - Set the top or "focus" node of the graph. If present, only the nodes that are reachable via this node will be returned. If null, nodes with no incoming or outgoing associations are used as starting points for navigation of forward and reverse relationships, respectively.
resolveForward - True means resolve in the direction of source to target.
resolveBackward - True means resolve in the direction of target to source.
resolveCodedEntryDepth - Depth in the graph to resolve coded entries. - 1 means don't resolve anything - just return the code references, 0 means resolve just the root nodes, 1 means resolve 1 deep, etc.
resolveAssociationDepth - Number of hops to resolve associations. 0 means leave all associations unresolved, 1 means immediate neighbors, etc. -1 means follow the entire closure of the graph.
propertyNames - Local names of properties to resolve. If not empty and not null, only properties matching the given names are included for resolved nodes.
propertyTypes - Indicates whether to resolve only specific property categories, regardless of the assigned name. Any of the enumerated PropertyType values can be specified. If not empty and not null, only properties matching the given types are included for resolved nodes.
sortOptions - List of sort options to apply during resolution. If supplied, the sort algorithms will be applied in the order provided. Any algorithms not valid to be applied in context of node set iteration, as specified in the sort extension description, will result in a parameter exception. Available algorithms can be retrieved through the LexBIGService getSortExtensions() method after being defined to the LexBIGServiceManager extension registry.
filterOptions - List of Filter extensions to apply during resolution. If supplied, filters are applied in the order provided. Each name in the list must correspond to the name of a Filter description as registered to the associated service. Available Filter descriptions can be retrieved through the LexBIGService getFilterExtensions() method after being defined to the LexBIGServiceManager extension registry.
maxToReturn - Maximum number of entries to return; a value less than 1 indicates to return unlimited entries (to the limit specified in the runtime configuration file).
Returns:
A list of node references, up to the maximum number specified. Note that in the event that a maximum number 'n' is specified and exactly 'n' items are returned, there is currently no flag or notification provided to indicate whether all available items were returned.

Note that while the class of the returned value appears to imply concepts only, each contained reference inherits from the more general CodedNodeReference and is capable of representing any type of node contained by the graph.

Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

resolveAsList

ResolvedConceptReferenceList resolveAsList(ConceptReference graphFocus,
                                           boolean resolveForward,
                                           boolean resolveBackward,
                                           int resolveCodedEntryDepth,
                                           int resolveAssociationDepth,
                                           LocalNameList propertyNames,
                                           CodedNodeSet.PropertyType[] propertyTypes,
                                           SortOptionList sortOptions,
                                           LocalNameList filterOptions,
                                           int maxToReturn,
                                           boolean keepLastAssociationLevelUnresolved)
                                           throws LBInvocationException,
                                                  LBParameterException
Resolve all of the coded nodes in the list, sorting by the supplied property (if any), resolving the supplied properties, resolving coded entries to the supplied depth, resolving associations to the supplied depth, and allowing for additional filters to be applied against the returned items.

Parameters:
graphFocus - Set the top or "focus" node of the graph. If present, only the nodes that are reachable via this node will be returned. If null, nodes with no incoming or outgoing associations are used as starting points for navigation of forward and reverse relationships, respectively.
resolveForward - True means resolve in the direction of source to target.
resolveBackward - True means resolve in the direction of target to source.
resolveCodedEntryDepth - Depth in the graph to resolve coded entries. - 1 means don't resolve anything - just return the code references, 0 means resolve just the root nodes, 1 means resolve 1 deep, etc.
resolveAssociationDepth - Number of hops to resolve associations. 0 means leave all associations unresolved, 1 means immediate neighbors, etc. -1 means follow the entire closure of the graph.
propertyNames - Local names of properties to resolve. If not empty and not null, only properties matching the given names are included for resolved nodes.
propertyTypes - Indicates whether to resolve only specific property categories, regardless of the assigned name. Any of the enumerated PropertyType values can be specified. If not empty and not null, only properties matching the given types are included for resolved nodes.
sortOptions - List of sort options to apply during resolution. If supplied, the sort algorithms will be applied in the order provided. Any algorithms not valid to be applied in context of node set iteration, as specified in the sort extension description, will result in a parameter exception. Available algorithms can be retrieved through the LexBIGService getSortExtensions() method after being defined to the LexBIGServiceManager extension registry.
filterOptions - List of Filter extensions to apply during resolution. If supplied, filters are applied in the order provided. Each name in the list must correspond to the name of a Filter description as registered to the associated service. Available Filter descriptions can be retrieved through the LexBIGService getFilterExtensions() method after being defined to the LexBIGServiceManager extension registry.
maxToReturn - Maximum number of entries to return; a value less than 1 indicates to return unlimited entries (to the limit specified in the runtime configuration file).
keepLastAssociationLevelUnresolved - Keep the last hop while resolving associations to the resolveAssociationDepth unresolved. This is useful while drawing trees of an ontology and we need a quick way to tell if the tree can be expanded further.
Returns:
A list of coded node references, up to the maximum number specified. Note that in the event that a maximum number 'n' is specified and exactly 'n' items are returned, there is currently no flag or notification provided to indicate whether all available items were returned.

Note that while the class of the returned value appears to imply concepts only, each contained reference inherits from the more general CodedNodeReference and is capable of representing any type of node contained by the graph.

Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

restrictToAssociations

CodedNodeGraph restrictToAssociations(NameAndValueList association,
                                      NameAndValueList associationQualifiers)
                                      throws LBInvocationException,
                                             LBParameterException
Restrict the graph to the nodes that participate as a source or target of the named association and, if supplied, the named association qualifiers.

Parameters:
association - List of associations used to restrict the graph. The name and value for each item in the list will be compared against the id and URI of supported associations for participating coding schemes.
associationQualifiers - If supplied, restriction only applies to associations that are qualified by one or more of the supplied qualifiers. The name and value for each item in the list will be compared against the id and URI of supported association qualifiers for participating coding schemes.
Returns:
A new CodedNodeGraph representing the filtered result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

restrictToDirectionalNames

CodedNodeGraph restrictToDirectionalNames(NameAndValueList directionalNames,
                                          NameAndValueList associationQualifiers)
                                          throws LBInvocationException,
                                                 LBParameterException
Restrict the graph to the nodes that participate as a source or target of an association whose directional name matches the one provided and, if supplied, the named association qualifiers. A directional name is considered to be either the forward or reverse label registered to an association defined by the ontology. Forward and reverse names are optionally assigned to each association. For example, an association 'lineage' may have a forward name 'ancestorOf' and reverse name 'descendantOf'.

Parameters:
directionalNames - List of directionalNames used to restrict the graph. A directional name is compared against the forward and reverse names for defined associations. If a given name matches more than one forward or reverse label, all corresponding associations are included in the restriction.
associationQualifiers - If supplied, restriction only applies to associations that are qualified by one or more of the supplied qualifiers. The name and value for each item in the list will be compared against the id and URI of supported association qualifiers for participating coding schemes.
Returns:
A new CodedNodeGraph representing the filtered result.
Throws:
LBInvocationException - ,LBParameterException
LBParameterException

restrictToCodes

CodedNodeGraph restrictToCodes(CodedNodeSet codes)
                               throws LBInvocationException,
                                      LBParameterException
Return a graph that contains only the codes that are present in the supplied list, and all edges that still have a source and target code remaining.

Parameters:
codes - Codes to filter on.
Returns:
A new CodedNodeGraph representing the filtered result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

restrictToCodeSystem

CodedNodeGraph restrictToCodeSystem(java.lang.String codingScheme)
                                    throws LBInvocationException,
                                           LBParameterException
Restrict the graph to codes (source and target) that originate from the supplied code system. Note: edges defined by other code systems will still be resolved if associated with both source and target nodes for the restricted code system.

Parameters:
codingScheme - The local name or URI of the coding scheme to filter on.
Returns:
A new CodedNodeGraph representing the filtered result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

restrictToSourceCodes

CodedNodeGraph restrictToSourceCodes(CodedNodeSet codes)
                                     throws LBInvocationException,
                                            LBParameterException
Restrict the graph to associations that have one of the codes in the supplied list as source codes.

Parameters:
codes - Codes to filter on.
Returns:
A new CodedNodeGraph representing the filtered result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

restrictToSourceCodeSystem

CodedNodeGraph restrictToSourceCodeSystem(java.lang.String codingScheme)
                                          throws LBInvocationException,
                                                 LBParameterException
Restrict the graph to edges that have codes from the specified code system as a source.

Parameters:
codingScheme - The local name or URI of the coding scheme to filter on.
Returns:
A new CodedNodeGraph representing the filtered result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

restrictToTargetCodes

CodedNodeGraph restrictToTargetCodes(CodedNodeSet codes)
                                     throws LBInvocationException,
                                            LBParameterException
Restrict the graph to associations that have one of the codes in the supplied list as target codes.

Parameters:
codes - Codes to filter on.
Returns:
A new CodedNodeGraph representing the filtered result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

restrictToTargetCodeSystem

CodedNodeGraph restrictToTargetCodeSystem(java.lang.String codingScheme)
                                          throws LBInvocationException,
                                                 LBParameterException
Restrict the graph to edges that have codes from the specified code system as a target.

Parameters:
codingScheme - The local name or URI of the coding scheme to filter on.
Returns:
A new CodedNodeGraph representing the filtered result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

toNodeList

CodedNodeSet toNodeList(ConceptReference graphFocus,
                        boolean resolveForward,
                        boolean resolveBackward,
                        int resolveAssociationDepth,
                        int maxToReturn)
                        throws LBInvocationException,
                               LBParameterException
Transform the graph into a simple of list of code references, removing all association information.

Parameters:
graphFocus - Set the top or "focus" node of the graph. If present, only the nodes that are reachable via this node will be returned. If null, nodes with no incoming or outgoing associations are used as starting points for navigation of forward and reverse relationships, respectively.
resolveForward - True means include all "forward" (source->target) associations.
resolveBackward - True means render all "forward" (source->target) associations
resolveAssociationDepth - Number of hops to resolve associations. 0 means leave all associations unresolved, 1 means immediate neighbors, etc. -1 means follow the entire closure of the graph.
maxToReturn - Maximum number of entries to return; a value less than 1 indicates to return unlimited entries (to the limit specified in the runtime configuration file).
Returns:
A set with matching items, up to the maximum number specified. Note that in the event that a maximum number 'n' is specified and exactly 'n' items are returned, there is currently no flag or notification provided to indicate whether all available items were returned.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

union

CodedNodeGraph union(CodedNodeGraph graph)
                     throws LBInvocationException,
                            LBParameterException
Return the union of the two graphs. Union, in this context, means that the resulting graph contains the unique set of coded entries (String independent) that are present in one or both of the graphs, and the unique combination of edges (associations) present in one or both of the graphs.

Parameters:
graph - Identifies the CodedNodeGraph to merge with.
Returns:
A new CodedNodeGraph representing the merged result.
Throws:
LBInvocationException,LBParameterException
LBInvocationException
LBParameterException

Copyright: (c) 2004-2006 Mayo Foundation for Medical Education and Research (MFMER). All rights reserved. MAYO, MAYO CLINIC, and the triple-shield Mayo logo are trademarks and service marks of MFMER.