info.sswap.api.input.io
Class SSWAPDeserializer

java.lang.Object
  extended by info.sswap.api.input.io.SSWAPDeserializer
All Implemented Interfaces:
InputDeserializer<SSWAPType>

public class SSWAPDeserializer
extends java.lang.Object
implements InputDeserializer<SSWAPType>

Creates Input objects from a given SSWAPType using several heuristics. The heuristics used include flattening nested intersection and union elements, combining multiple restrictions on the same property under one PropertyInput, and so on. Recursive class expressions are detected and an AtomicInput is created when in such cases.

Author:
Evren Sirin

Nested Class Summary
private static class SSWAPDeserializer.VisitDepth
           
private static class SSWAPDeserializer.VisitedTerms
           
 
Field Summary
private  java.util.Map<aterm.ATermAppl,java.util.Set<aterm.ATermAppl>> cachedDefinitions
           
private static com.google.common.base.Predicate<Input> HAS_LABEL
           
private static com.google.common.base.Predicate<java.lang.Object> IS_ATOMIC
           
private static com.google.common.base.Predicate<java.lang.Object> IS_ENUMERATED
           
private static com.google.common.base.Predicate<java.lang.Object> IS_PROPERTY
           
private static com.google.common.base.Predicate<Input> IS_UNRESTRICTED
           
private  org.mindswap.pellet.KnowledgeBase kb
           
protected static org.apache.log4j.Logger LOGGER
           
private  ReasoningServiceImpl reasoningService
           
private  SSWAPDeserializer.VisitedTerms visitedTerms
           
 
Constructor Summary
SSWAPDeserializer()
           
 
Method Summary
private  void addDomainRestrictions(aterm.ATermAppl p, java.util.List<Input> inputs)
           
private  java.util.Iterator<aterm.ATermAppl> argIterator(aterm.ATermAppl term)
           
private  void cacheDefinitions()
           
private  void copyLabelAndDescription(Input source, Input target)
           
private  Input createInputFromList(java.util.List<Input> inputs)
           
private  Input createRangeInput(aterm.ATermAppl p, Input additionalRange)
           
private  InputValue createValue(aterm.ATermAppl term)
           
 Input deserialize(SSWAPType type)
          Deserializes an Input instance from the given object.
private  boolean isRestriction(aterm.ATermAppl cls)
           
private  com.google.common.collect.UnmodifiableIterator<PropertyInput> propertyInputs(java.util.List<Input> inputs, java.net.URI prop)
           
private  void setLabelDescription(Input input, aterm.ATermAppl term)
           
private  Input visit(aterm.ATermAppl cls)
           
private  void visit(aterm.ATermAppl cls, java.util.List<Input> inputs, boolean isSuperClass)
           
private  void visitAllValues(aterm.ATermAppl allValues, java.util.List<Input> inputs)
           
private  void visitCard(aterm.ATermAppl card, java.util.List<Input> inputs)
           
private  void visitIntersectionOf(java.util.Iterator<aterm.ATermAppl> intersection, java.util.List<Input> inputs)
           
private  void visitIntersectionOf(java.util.Iterator<aterm.ATermAppl> intersection, java.util.List<Input> inputs, boolean isSuperClass)
           
private  void visitMax(aterm.ATermAppl max, java.util.List<Input> inputs)
           
private  void visitMin(aterm.ATermAppl p, int cardinality, aterm.ATermAppl type, java.util.List<Input> inputs)
           
private  void visitMin(aterm.ATermAppl min, java.util.List<Input> inputs)
           
private  void visitNamedClass(aterm.ATermAppl namedClass, java.util.Collection<aterm.ATermAppl> supers, java.util.List<Input> inputs, boolean isSuperClass)
           
private  void visitNamedClass(aterm.ATermAppl namedClass, java.util.List<Input> inputs, boolean isSuperClass)
           
private  void visitOneOf(java.util.Iterator<aterm.ATermAppl> enumeration, java.util.List<Input> inputs)
           
private  void visitSomeValues(aterm.ATermAppl someValues, java.util.List<Input> inputs)
           
private  void visitUnionOf(java.util.Iterator<aterm.ATermAppl> union, java.util.List<Input> inputs)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGGER

protected static final org.apache.log4j.Logger LOGGER

IS_ATOMIC

private static final com.google.common.base.Predicate<java.lang.Object> IS_ATOMIC

IS_PROPERTY

private static final com.google.common.base.Predicate<java.lang.Object> IS_PROPERTY

IS_ENUMERATED

private static final com.google.common.base.Predicate<java.lang.Object> IS_ENUMERATED

IS_UNRESTRICTED

private static final com.google.common.base.Predicate<Input> IS_UNRESTRICTED

HAS_LABEL

private static final com.google.common.base.Predicate<Input> HAS_LABEL

reasoningService

private ReasoningServiceImpl reasoningService

kb

private org.mindswap.pellet.KnowledgeBase kb

visitedTerms

private SSWAPDeserializer.VisitedTerms visitedTerms

cachedDefinitions

private java.util.Map<aterm.ATermAppl,java.util.Set<aterm.ATermAppl>> cachedDefinitions
Constructor Detail

SSWAPDeserializer

public SSWAPDeserializer()
Method Detail

deserialize

public Input deserialize(SSWAPType type)
Description copied from interface: InputDeserializer
Deserializes an Input instance from the given object.

Specified by:
deserialize in interface InputDeserializer<SSWAPType>

cacheDefinitions

private void cacheDefinitions()

setLabelDescription

private void setLabelDescription(Input input,
                                 aterm.ATermAppl term)

isRestriction

private boolean isRestriction(aterm.ATermAppl cls)

visit

private Input visit(aterm.ATermAppl cls)

createInputFromList

private Input createInputFromList(java.util.List<Input> inputs)

copyLabelAndDescription

private void copyLabelAndDescription(Input source,
                                     Input target)

visit

private void visit(aterm.ATermAppl cls,
                   java.util.List<Input> inputs,
                   boolean isSuperClass)

argIterator

private java.util.Iterator<aterm.ATermAppl> argIterator(aterm.ATermAppl term)

createValue

private InputValue createValue(aterm.ATermAppl term)

propertyInputs

private com.google.common.collect.UnmodifiableIterator<PropertyInput> propertyInputs(java.util.List<Input> inputs,
                                                                                     java.net.URI prop)

visitNamedClass

private void visitNamedClass(aterm.ATermAppl namedClass,
                             java.util.List<Input> inputs,
                             boolean isSuperClass)

visitNamedClass

private void visitNamedClass(aterm.ATermAppl namedClass,
                             java.util.Collection<aterm.ATermAppl> supers,
                             java.util.List<Input> inputs,
                             boolean isSuperClass)

visitIntersectionOf

private void visitIntersectionOf(java.util.Iterator<aterm.ATermAppl> intersection,
                                 java.util.List<Input> inputs)

visitIntersectionOf

private void visitIntersectionOf(java.util.Iterator<aterm.ATermAppl> intersection,
                                 java.util.List<Input> inputs,
                                 boolean isSuperClass)

visitUnionOf

private void visitUnionOf(java.util.Iterator<aterm.ATermAppl> union,
                          java.util.List<Input> inputs)

visitOneOf

private void visitOneOf(java.util.Iterator<aterm.ATermAppl> enumeration,
                        java.util.List<Input> inputs)

addDomainRestrictions

private void addDomainRestrictions(aterm.ATermAppl p,
                                   java.util.List<Input> inputs)

createRangeInput

private Input createRangeInput(aterm.ATermAppl p,
                               Input additionalRange)

visitAllValues

private void visitAllValues(aterm.ATermAppl allValues,
                            java.util.List<Input> inputs)

visitSomeValues

private void visitSomeValues(aterm.ATermAppl someValues,
                             java.util.List<Input> inputs)

visitMin

private void visitMin(aterm.ATermAppl min,
                      java.util.List<Input> inputs)

visitMin

private void visitMin(aterm.ATermAppl p,
                      int cardinality,
                      aterm.ATermAppl type,
                      java.util.List<Input> inputs)

visitMax

private void visitMax(aterm.ATermAppl max,
                      java.util.List<Input> inputs)

visitCard

private void visitCard(aterm.ATermAppl card,
                       java.util.List<Input> inputs)


Copyright (c) 2011, iPlant Collaborative, University of Arizona, Cold Spring Harbor Laboratories, University of Texas at Austin.