Examples of Bool


Examples of org.mindswap.pellet.utils.Bool

    p = getRole( p ).getInverse().getName();
    Iterator<ATermAppl> i = candidates.iterator();
    while( i.hasNext() ) {
      ATermAppl s = i.next();

      Bool hasObviousValue = hasObviousObjectPropertyValue( s, p, null );
      candidates.update( s, hasObviousValue );
    }
  }
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

    if( pNode.isMerged() ) {
      isIndependent = pNode.getMergeDependency( true ).isIndependent();
      pNode = pNode.getSame();
    }

    Bool isType = isKnownType( pNode, c, subs );

    if( isIndependent ) {
          return isType;
        }
        else if( isType.isTrue() ) {
          return Bool.UNKNOWN;
        }
        else {
          return isType;
        }
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

        }
  }

  public Bool isKnownType(Individual pNode, ATermAppl concept, Collection<ATermAppl> subs) {
    // Timer t = kb.timers.startTimer( "isKnownType" );
    Bool isType = isType( pNode, concept );
    if( isType.isUnknown() ) {
      Set<ATermAppl> concepts = ATermUtils.isAnd( concept )
        ? ATermUtils.listToSet( (ATermList) concept.getArgument( 0 ) )
        : SetUtils.singleton( concept );

      isType = Bool.TRUE;
      for( ATermAppl c : concepts ) {
        Bool type = pNode.hasObviousType( c );

        if( type.isUnknown() && pNode.hasObviousType( subs ) ) {
          type = Bool.TRUE;
        }
       
        if( type.isKnown() ) {
          isType = isType.and( type );
        }
        else {
          isType = Bool.UNKNOWN;
         
//          boolean justSC = true;

          Collection<ATermAppl> axioms = kb.getTBox().getAxioms( c );
          LOOP: for( ATermAppl axiom : axioms ) {
            ATermAppl term = (ATermAppl) axiom.getArgument( 1 );

//            final AFun afun = axiom.getAFun();
//
//            if( !afun.equals( ATermUtils.SUBFUN ) ) {
//              justSC = false;
//            }

            boolean equivalent = axiom.getAFun().equals( ATermUtils.EQCLASSFUN );
            if( equivalent ) {
              Iterator<ATermAppl> i = ATermUtils.isAnd( term )
                ? new MultiListIterator( (ATermList) term.getArgument( 0 ) )
                : Collections.singleton( term ).iterator();
              Bool knownType = Bool.TRUE;
              while( i.hasNext() && knownType.isTrue() ) {
                term = i.next();
                knownType = isKnownType( pNode, term, SetUtils.<ATermAppl>emptySet() );
              }
              if( knownType.isTrue() ) {
                isType = Bool.TRUE;
                break LOOP;
              }
            }
          }
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

  protected ATermAppl createRestriction(Node node) throws UnsupportedFeatureException {
    Node restrictionType = null;
    Node p = null;
    Node filler = null;
    Node qualification = null;
    Bool isObjectRestriction = Bool.UNKNOWN;

    ClosableIterator<Triple> i = graph.find( node, null, null );
    while( i.hasNext() ) {
      monitor.incrementProgress();
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

    return isType;
  }

  private Bool isType(CachedNode pNode, ATermAppl c) {
    Bool isType = Bool.UNKNOWN;
   
    boolean isPrimitive = kb.getTBox().isPrimitive( c );
   
    if( isPrimitive && !pNode.isTop() && !pNode.isBottom() && pNode.isComplete() ) {
      DependencySet ds = pNode.getDepends().get( c );
      if( ds == null ) {
        return Bool.FALSE;
      }
      else if( ds.isIndependent() && pNode.isIndependent() ) {
        return Bool.TRUE;
      }
    }
   
    ATermAppl notC = ATermUtils.negate( c );
    CachedNode cached = getCached( notC );
    if( cached != null && cached.isComplete() ) {
      isType = cache.isMergable( kb, pNode, cached ).not();
    }

    if( PelletOptions.CHECK_NOMINAL_EDGES && isType.isUnknown() ) {
      CachedNode cNode = getCached( c );
      if( cNode != null ) {
        isType = cache.checkNominalEdges( kb, pNode, cNode )
      }
    }
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

      }
            else {
              subs = SetUtils.emptySet();
            }
 
      Bool type = isKnownType( x, c, subs );
      if( type.isKnown() ) {
              return type.isTrue();
            }
    }
    // List list = (List) kb.instances.get( c );
    // if( list != null )
    // return list.contains( x );
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

    }
        else {
          subj = subj.getSame();
        }

    Bool hasValue = subj.hasDataPropertyValue( prop, value );
    if( onlyPositive && hasValue.isFalse() ) {
          return Bool.UNKNOWN;
        }

    return hasValue;
  }
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

            }
    }
  }

  public boolean hasPropertyValue(ATermAppl s, ATermAppl p, ATermAppl o) {   
    Bool hasObviousValue = hasObviousPropertyValue( s, p, o );
    if( hasObviousValue.isKnown() ) {
      if( hasObviousValue.isFalse() || !doExplanation() ) {
              return hasObviousValue.isTrue();
            }
    }

    ATermAppl c = null;
    if( o == null ) {
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

    this.maxSize = maxSize;
  }
 

  private Bool checkTrivialClash(CachedNode node1, CachedNode node2) {
    Bool result = null;

    if( node1.isBottom() || node2.isBottom() ) {
      result = Bool.TRUE;
    }
    else if( node1.isTop() || node2.isTop() ) {
View Full Code Here

Examples of org.mindswap.pellet.utils.Bool

    return result;
  }

  public Bool isMergable(KnowledgeBase kb, CachedNode root1, CachedNode root2) {
    Bool result = checkTrivialClash( root1, root2 );
    if( result != null )
      return result.not();

    CachedNode roots[] = new CachedNode[] { root1, root2 };
    boolean isIndependent = root1.isIndependent() && root2.isIndependent();
   
    int root = roots[0].getDepends().size() < roots[1].getDepends().size()
      ? 0
      : 1;
    int otherRoot = 1 - root;
    for( Entry<ATermAppl, DependencySet> entry : roots[root].getDepends().entrySet() ) {
      ATermAppl c = entry.getKey();
      ATermAppl notC = ATermUtils.negate( c );

      DependencySet ds2 = roots[otherRoot].getDepends().get( notC );
      if( ds2 != null ) {
        DependencySet ds1 = entry.getValue();
        boolean allIndependent = isIndependent && ds1.isIndependent() && ds2.isIndependent();
        if( allIndependent ) {
          if( log.isLoggable( Level.FINE ) )
            log.fine( roots[root] + " has " + c + " " + roots[otherRoot]
                + " has negation " + ds1.max() + " " + ds2.max() );
          return Bool.FALSE;
        }
        else {
          if( log.isLoggable( Level.FINE ) )
            log.fine( roots[root] + " has " + c + " " + roots[otherRoot]
                + " has negation " + ds1.max() + " " + ds2.max() );
          result = Bool.UNKNOWN;
        }
      }
    }

    // if there is a suspicion there is no way to fix it later so return now
    if( result != null )
      return result;

    for( root = 0; root < 2; root++ ) {
      otherRoot = 1 - root;

      for( ATermAppl c : roots[root].getDepends().keySet() ) {
        if( ATermUtils.isPrimitive( c ) ) {
          result = checkBinaryClash( kb, c, roots[root], roots[otherRoot] );
        }
        else if( ATermUtils.isAllValues( c ) ) {
          result = checkAllValuesClash( kb, c, roots[root], roots[otherRoot] );
        }
        else if( ATermUtils.isNot( c ) ) {
          ATermAppl arg = (ATermAppl) c.getArgument( 0 );
          if( ATermUtils.isMin( arg ) ) {       
            result = checkMaxClash( kb, c, roots[root], roots[otherRoot] );
          }
          else if( ATermUtils.isSelf( arg ) ) {
            result = checkSelfClash( kb, arg, roots[root], roots[otherRoot] );
          }
        }

        if( result != null )
          return result;
      }
    }
   
    boolean bothNamedIndividuals = (root1 instanceof Individual && root2 instanceof Individual);

    if( kb.getExpressivity().hasFunctionality() || kb.getExpressivity().hasFunctionalityD() ) {
      root = (roots[0].getOutEdges().size() + roots[0].getInEdges().size()) < (roots[1]
          .getOutEdges().size() + roots[1].getInEdges().size())
        ? 0
        : 1;
      otherRoot = 1 - root;

      if( bothNamedIndividuals )
        result = checkFunctionalityClashWithDifferents( (Individual) roots[root],
            (Individual) roots[otherRoot] );
      else
        result = checkFunctionalityClash( roots[root], roots[otherRoot] );
      if( result != null )
        return result;
    }

    if( bothNamedIndividuals ) {
      Individual ind1 = (Individual) root1;
      Individual ind2 = (Individual) root2;
      DependencySet ds = ind1.getDifferenceDependency( ind2 );
      if( ds != null ) {
        return ds.isIndependent()
          ? Bool.FALSE
          : Bool.UNKNOWN;
      }
     
      for (Edge edge : ind1.getOutEdges()) {
        if (edge.getRole().isIrreflexive() && edge.getTo().equals(ind2)) {
          return edge.getDepends().isIndependent()
            ? Bool.FALSE
            : Bool.UNKNOWN;
        }
      }
     
      for (Edge edge : ind1.getInEdges()) {
        if (edge.getRole().isIrreflexive() && edge.getFrom().equals(ind2)) {
          return edge.getDepends().isIndependent()
            ? Bool.FALSE
            : Bool.UNKNOWN;
        }
      }
    }
   
    if( kb.getExpressivity().hasDisjointRoles() ) {
      Bool clash = checkDisjointPropertyClash( root1, root2 );
      if (clash != null ) {
        if( log.isLoggable( Level.FINE ) )
          log.fine( "Cannot determine if two named individuals can be merged or not: " + roots[0] + "  + roots[1]" );
        return Bool.UNKNOWN;   
      }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.