Package org.mindswap.pellet

Examples of org.mindswap.pellet.KnowledgeBase


        XSDDecimal.getInstance().getName() ) ) );
  }

  @Test
  public void testMaxCardinality() {
    KnowledgeBase kb = new KnowledgeBase();

    kb.addObjectProperty( term( "p" ) );
    kb.addObjectProperty( term( "q" ) );
    kb.addFunctionalProperty( term( "q" ) );

    kb.addClass( term( "C" ) );
    kb.addSubClass( term( "C" ), ATermUtils.makeMax( term( "p" ), 2, ATermUtils.TOP ) );

    kb.addClass( term( "D1" ) );
    kb.addClass( term( "D2" ) );
    kb.addClass( term( "D3" ) );
    kb.addClass( term( "D4" ) );
    kb.addClass( term( "E1" ) );
    kb.addClass( term( "E2" ) );
    kb.addClass( term( "E3" ) );
    kb.addClass( term( "E4" ) );
    kb.addSubClass( term( "D1" ), ATermUtils.makeSomeValues( term( "q" ), term( "E1" ) ) );
    kb.addSubClass( term( "D2" ), ATermUtils.makeSomeValues( term( "q" ), term( "E2" ) ) );
    kb.addSubClass( term( "D3" ), ATermUtils.makeSomeValues( term( "q" ), term( "E3" ) ) );
    kb.addSubClass( term( "D4" ), ATermUtils.makeSomeValues( term( "q" ), term( "E4" ) ) );

    kb.addIndividual( term( "x" ) );
    kb.addType( term( "x" ), term( "C" ) );
    kb.addIndividual( term( "x1" ) );
    kb.addType( term( "x1" ), term( "D1" ) );
    kb.addIndividual( term( "x2" ) );
    kb.addType( term( "x2" ), term( "D2" ) );
    kb.addIndividual( term( "x3" ) );
    kb.addType( term( "x3" ), term( "D3" ) );
    kb.addIndividual( term( "x4" ) );
    kb.addType( term( "x4" ), term( "D4" ) );

    kb.addPropertyValue( term( "p" ), term( "x" ), term( "x1" ) );
    kb.addPropertyValue( term( "p" ), term( "x" ), term( "x2" ) );
    kb.addPropertyValue( term( "p" ), term( "x" ), term( "x3" ) );
    kb.addPropertyValue( term( "p" ), term( "x" ), term( "x4" ) );

    kb.addDisjointClass( term( "E1" ), term( "E2" ) );
    kb.addDisjointClass( term( "E1" ), term( "E4" ) );
    kb.addDisjointClass( term( "E2" ), term( "E3" ) );

    assertTrue( kb.isConsistent() );

    assertTrue( kb.isSameAs( term( "x1" ), term( "x3" ) ) );
    assertTrue( kb.isSameAs( term( "x3" ), term( "x1" ) ) );
    assertTrue( kb.isSameAs( term( "x2" ), term( "x4" ) ) );

    assertTrue( kb.getSames( term( "x1" ) ).contains( term( "x3" ) ) );
    assertTrue( kb.getSames( term( "x2" ) ).contains( term( "x4" ) ) );
  }
View Full Code Here


    assertTrue( kb.getSames( term( "x2" ) ).contains( term( "x4" ) ) );
  }

  @Test
  public void testDifferentFrom2() {
    KnowledgeBase kb = new KnowledgeBase();

    kb.addClass( term( "C" ) );
    kb.addClass( term( "D" ) );
    kb.addDisjointClass( term( "C" ), term( "D" ) );

    kb.addIndividual( term( "a" ) );
    kb.addType( term( "a" ), term( "C" ) );

    kb.addIndividual( term( "b" ) );
    kb.addType( term( "b" ), term( "D" ) );

    kb.classify();

    assertTrue( kb.getDifferents( term( "a" ) ).contains( term( "b" ) ) );
    assertTrue( kb.getDifferents( term( "b" ) ).contains( term( "a" ) ) );
  }
View Full Code Here

    assertTrue( kb.getDifferents( term( "b" ) ).contains( term( "a" ) ) );
  }

  @Test
  public void testSHOIN() {
    KnowledgeBase kb = new KnowledgeBase();

    kb.addObjectProperty( term( "R1" ) );
    kb.addObjectProperty( term( "invR1" ) );
    kb.addObjectProperty( term( "R2" ) );
    kb.addObjectProperty( term( "invR2" ) );
    kb.addObjectProperty( term( "S1" ) );
    kb.addObjectProperty( term( "invS1" ) );
    kb.addObjectProperty( term( "S2" ) );
    kb.addObjectProperty( term( "invS2" ) );

    kb.addInverseProperty( term( "R1" ), term( "invR1" ) );
    kb.addInverseProperty( term( "R2" ), term( "invR2" ) );
    kb.addInverseProperty( term( "S1" ), term( "invS1" ) );
    kb.addInverseProperty( term( "S2" ), term( "invS2" ) );

    kb.addIndividual( term( "o1" ) );
    kb.addIndividual( term( "o2" ) );

    kb.addSubClass( value( term( "o1" ) ), and( max( term( "invR1" ), 2, ATermUtils.TOP ), all(
        term( "invR1" ), some( term( "S1" ), some( term( "invS2" ), some( term( "R2" ),
            value( term( "o2" ) ) ) ) ) ) ) );

    kb.addSubClass( value( term( "o2" ) ), and( max( term( "invR2" ), 2, ATermUtils.TOP ), all(
        term( "invR2" ), some( term( "S2" ), some( term( "invS1" ), some( term( "R1" ),
            value( term( "o1" ) ) ) ) ) ) ) );

    assertTrue( kb.isConsistent() );

    assertTrue( kb.isSatisfiable( and( value( term( "o1" ) ), some( term( "invR1" ), TOP ) ) ) );
  }
View Full Code Here

  // "Unsat4" ) ) );
  // }

  @Test
  public void testCyclicTBox1() {
    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl C = term( "C" );
    kb.addEquivalentClass( C, not( C ) );

    assertFalse( kb.isConsistent() );
  }
View Full Code Here

   * left as CD. In phase 1, B is tried to be CD-classified but A is eft for
   * phase 2 thus unclassified at that time causing the exception.
   */
  @Test
  public void testTopClass2() {
    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl A = term( "A" );
    ATermAppl B = term( "B" );
    ATermAppl C = term( "C" );

    ATermAppl p = term( "p" );
   
    kb.addClass( A );
    kb.addClass( B );
    kb.addClass( C );
    kb.addObjectProperty( p );

    kb.addEquivalentClass( A, or( B, not( B ) ) );
    // the following restriction is only to ensure we don't use the
    // EL classifier
    kb.addSubClass( C, min( p, 2, TOP ) );

    assertTrue( kb.isConsistent() );

    kb.classify();

    assertTrue( kb.isEquivalentClass( A, TOP ) );
    assertFalse( kb.isEquivalentClass( B, TOP ) );
  }
View Full Code Here

   */
  @Test
  public void testTopClass2EL() {
    // This test was failing due to the issue explained in #157 at some point but not anymore
    // The issue explained in #157 is still valid even though this test passes
    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl A = term( "A" );
    ATermAppl B = term( "B" );

    kb.addClass( A );
    kb.addClass( B );

    kb.addEquivalentClass( A, or( B, not( B ) ) );

    assertTrue( kb.isConsistent() );

    kb.classify();

    assertTrue( kb.isEquivalentClass( A, TOP ) );
    assertFalse( kb.isEquivalentClass( B, TOP ) );
  }
View Full Code Here

   *
   * @param manager
   *            ontology manager for this reasoner
   */
  public Reasoner(OWLOntologyManager manager) {
    this( manager, new KnowledgeBase() );
  }
View Full Code Here

    assertFalse(kb.isSatisfiable(C));
  }
 
  @Test
  public void testSimplePropertyChain() {
    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl C = term( "C" );
    ATermAppl D = term( "D" );
    ATermAppl p = term( "p" );
    ATermAppl q = term( "q" );
    ATermAppl r = term( "r" );
    ATermAppl a = term( "a" );
    ATermAppl b = term( "b" );
    ATermAppl c = term( "c" );

    kb.addObjectProperty( p );
    kb.addObjectProperty( q );
    kb.addObjectProperty( r );
    kb.addSubProperty( list( p, q ), r );

    kb.addClass( C );
    kb.addClass( D );
    kb.addSubClass( C, some( p, some( q, all( inv( r ), D ) ) ) );

    kb.addIndividual( a );
    kb.addIndividual( b );
    kb.addIndividual( c );
    kb.addPropertyValue( p, a, b );
    kb.addPropertyValue( q, b, c );

    assertTrue( kb.isSubClassOf( C, D ) );
    assertTrue( kb.hasPropertyValue( a, r, c ) );
    assertEquals( Arrays.asList( c ), kb.getPropertyValues( r, a ) );
  }
View Full Code Here

 
 
  @Test
  public void invalidCycle1() {
    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl B = term( "B" );
    ATermAppl C = term( "C" );
    ATermAppl D = term( "D" );
    ATermAppl p = term( "p" );
    ATermAppl q = term( "q" );
    ATermAppl r = term( "r" );
    ATermAppl a = term( "a" );
    ATermAppl b = term( "b" );
    ATermAppl c = term( "c" );
    ATermAppl d = term( "d" );
   
    kb.addObjectProperty( p );
    kb.addObjectProperty( q );
    kb.addObjectProperty( r );
    kb.addSubProperty( list( p, q, r ), q );
   
    kb.addClass( B );
    kb.addClass( C );
    kb.addClass( D );
    kb.addSubClass( B, some( p, some( q, some( r, D ) ) ) );
    kb.addSubClass( C, some( q, D ) );

    kb.addIndividual( a );
    kb.addIndividual( b );
    kb.addIndividual( c );
    kb.addIndividual( d );
    kb.addPropertyValue( p, a, b );
    kb.addPropertyValue( q, b, c );
    kb.addPropertyValue( r, c, d );

    kb.prepare();
   
    assertTrue( kb.getRole(q).isSimple() );

    assertFalse( kb.isSubClassOf( B, C ) );
    assertFalse( kb.hasPropertyValue( a, q, c ) );
    assertTrue( kb.getPropertyValues( q, a ).isEmpty() );
  }
View Full Code Here

  }
 
 
  @Test
  public void validCycle1() {
    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl C = term( "C" );
    ATermAppl D = term( "D" );
    ATermAppl p = term( "p" );
    ATermAppl q = term( "q" );
    ATermAppl r = term( "r" );
    ATermAppl a = term( "a" );
    ATermAppl b = term( "b" );
    ATermAppl c = term( "c" );
    ATermAppl d = term( "d" );
   
    kb.addObjectProperty( p );
    kb.addObjectProperty( q );
    kb.addObjectProperty( r );
    kb.addSubProperty( list( p, q, r ), p );
   
    kb.addClass( C );
    kb.addClass( D );
    kb.addSubClass( C, some( p, some( q, some( r, all( inv( p ), D ) ) ) ) );

    kb.addIndividual( a );
    kb.addIndividual( b );
    kb.addIndividual( c );
    kb.addIndividual( d );
    kb.addPropertyValue( p, a, b );
    kb.addPropertyValue( q, b, c );
    kb.addPropertyValue( r, c, d );

    kb.prepare();
   
    assertFalse( kb.getRole(p).isSimple() );

    assertTrue( kb.isSubClassOf( C, D ) );
    assertTrue( kb.hasPropertyValue( a, p, d ) );
    assertIteratorValues( kb.getPropertyValues( p, a ).iterator()new ATermAppl[] { b, d } );
  }
View Full Code Here

TOP

Related Classes of org.mindswap.pellet.KnowledgeBase

Copyright © 2018 www.massapicom. 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.