Package org.mindswap.pellet

Examples of org.mindswap.pellet.KnowledgeBase


  @Test
  public void testBottomSub() {

    // See also: http://cvsdude.com/trac/clark-parsia/pellet-devel/ticket/7

    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl c = term( "c" );
    kb.addClass( c );
    kb.addSubClass( ATermUtils.BOTTOM, c );
    kb.classify();

    assertTrue( kb.isSubClassOf( ATermUtils.BOTTOM, c ) );
  }
View Full Code Here


  }

  @Test
  @Ignore("Known to fail because different lexical forms are stored in one canonical literal")
  public void testCanonicalLiteral() {
    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl a = term( "a" );
    ATermAppl p = term( "p" );
    ATermAppl q = term( "q" );
    ATermAppl plain = ATermUtils.makePlainLiteral( "lit" );
    ATermAppl typed = ATermUtils.makeTypedLiteral( "lit", XSDString.getInstance().getName() );

    kb.addIndividual( a );
    kb.addDatatypeProperty( p );
    kb.addDatatypeProperty( q );

    kb.addPropertyValue( p, a, plain );
    kb.addPropertyValue( q, a, typed );

    assertIteratorValues( kb.getDataPropertyValues( p, a ).iterator(),
        new ATermAppl[] { plain } );
    assertIteratorValues( kb.getDataPropertyValues( q, a ).iterator(),
        new ATermAppl[] { typed } );

  }
View Full Code Here

  }

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

    ATermAppl a = term( "a" );
    ATermAppl C = term( "C" );
    ATermAppl D = term( "D" );

    kb.addClass( C );
    kb.addClass( D );

    kb.addIndividual( a );
    kb.addType( a, C );
    kb.addType( a, D );

    kb.removeType( a, D );

    assertTrue( kb.isConsistent() );
    assertTrue( kb.isType( a, C ) );
    assertFalse( kb.isType( a, D ) );
  }
View Full Code Here

    assertFalse( kb.isType( a, D ) );
  }

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

    ATermAppl a = term( "a" );
    ATermAppl b = term( "b" );

    ATermAppl C = term( "C" );

    ATermAppl p = term( "p" );

    kb.addClass( C );

    kb.addObjectProperty( p );

    kb.addIndividual( a );
    kb.addIndividual( b );

    kb.addType( a, all( p, C ) );
    kb.addType( b, C );

    kb.addPropertyValue( p, a, b );

    kb.removeType( b, C );

    kb.removePropertyValue( p, a, b );

    assertTrue( kb.isConsistent() );
    assertFalse( kb.isType( b, C ) );
    assertFalse( kb.hasPropertyValue( a, p, b ) );
  }
View Full Code Here

      ATermAppl A = ATermUtils.makeTermAppl( "A" );
      ATermAppl B = ATermUtils.makeTermAppl( "B" );
      ATermAppl C = ATermUtils.makeTermAppl( "C" );
      ATermAppl x = ATermUtils.makeTermAppl( "x" );

      KnowledgeBase kb = new KnowledgeBase();

      kb.addClass( A );
      kb.addClass( B );
      kb.addClass( C );
      kb.addIndividual( x );

      kb.addSubClass( C, A );

      kb.addType( x, C );
      kb.addType( x, B );

      Set<Set<ATermAppl>> expectedTypes = new HashSet<Set<ATermAppl>>();
      expectedTypes.add( Collections.singleton( ATermUtils.TOP ) );
      expectedTypes.add( Collections.singleton( A ) );
      expectedTypes.add( Collections.singleton( B ) );
      expectedTypes.add( Collections.singleton( C ) );

      assertTrue( kb.isConsistent() );

      Set<Set<ATermAppl>> actualTypes = kb.getTypes( x );
      assertEquals( expectedTypes, actualTypes );

      kb.addDisjointClass( A, B );
      assertFalse( kb.isConsistent() );

      assertTrue( kb.removeAxiom( ATermUtils.makeDisjoint( A, B ) ) );
      assertTrue( kb.isConsistent() );

      actualTypes = kb.getTypes( x );
      assertEquals( expectedTypes, actualTypes );

    } finally {
      PelletOptions.setOptions( savedOptions );
    }
View Full Code Here

    try {
      ATermAppl A = ATermUtils.makeTermAppl( "A" );
      ATermAppl B = ATermUtils.makeTermAppl( "B" );
      ATermAppl p = ATermUtils.makeTermAppl( "p" );

      KnowledgeBase kb = new KnowledgeBase();

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

      ATermAppl or1 = or( A, some( p, A ) );
      ATermAppl or2 = or( B, some( p, B ) );

      ATermList list = ATermUtils.toSet( new ATerm[] { or1, or2 }, 2 );
      kb.addDisjointClasses( list );

      assertTrue( kb.isConsistent() );

      ATermAppl disjoint = ATermUtils.makeDisjoints( list );
      assertFalse( kb.removeAxiom( disjoint ) );
    } finally {
      PelletOptions.setOptions( savedOptions );
    }
  }
View Full Code Here

    try {
      ATermAppl A = ATermUtils.makeTermAppl( "A" );
      ATermAppl B = ATermUtils.makeTermAppl( "B" );
      ATermAppl p = ATermUtils.makeTermAppl( "p" );

      KnowledgeBase kb = new KnowledgeBase();

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

      ATermAppl or1 = or( A, some( p, A ) );
      ATermAppl or2 = or( B, some( p, B ) );

      kb.addDisjointClass( or1, or2 );

      assertTrue( kb.isConsistent() );

      ATermAppl disjoint = ATermUtils.makeDisjoint( or1, or2 );
      assertFalse( kb.removeAxiom( disjoint ) );
    } finally {
      PelletOptions.setOptions( savedOptions );
    }
  }
View Full Code Here

    try {
      ATermAppl A = ATermUtils.makeTermAppl( "A" );
      ATermAppl p = ATermUtils.makeTermAppl( "p" );

      KnowledgeBase kb = new KnowledgeBase();

      kb.addClass( A );
      kb.addObjectProperty( p );
     
      kb.addSubClass( TOP, all( p, A ) );
     
      Role r = kb.getRole( p );

      assertTrue( kb.isConsistent() );
      assertTrue( r.getRanges().contains( A ) );
     
      assertFalse( kb.removeAxiom( ATermUtils.makeSub( TOP, all( p, A ) ) ) );     
    } finally {
      PelletOptions.setOptions( savedOptions );
    }
  }
View Full Code Here

  @Test
  public void testAssertedSameAs() {
    // This test case is to test the processing of sameAs processing
    // where there are redundancies in the assertions (see ticket 138)

    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl a = term( "a" );
    ATermAppl b = term( "b" );
    ATermAppl c = term( "c" );
    ATermAppl d = term( "d" );
    ATermAppl e = term( "e" );
    ATermAppl f = term( "f" );

    kb.addIndividual( a );
    kb.addIndividual( b );
    kb.addIndividual( c );
    kb.addIndividual( d );
    kb.addIndividual( e );
    kb.addIndividual( f );

    kb.addSame( a, b );
    kb.addSame( b, c );
    kb.addSame( c, d );
    kb.addSame( a, d );
    kb.addSame( b, d );
    kb.addSame( e, f );
    kb.addDifferent( e, f );

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

  @Test
  public void testSubPropertyRestore() {
    // This test case is to test the restoring of edges with
    // subproperties (see ticket 109)

    KnowledgeBase kb = new KnowledgeBase();

    ATermAppl a = term( "a" );
    ATermAppl b = term( "b" );
    ATermAppl c = term( "c" );
    ATermAppl d = term( "d" );

    ATermAppl p = term( "p" );
    ATermAppl q = term( "q" );
    ATermAppl invP = term( "invP" );
    ATermAppl invQ = term( "invQ" );

    kb.addIndividual( a );
    kb.addIndividual( b );
    kb.addIndividual( c );
    kb.addIndividual( d );

    kb.addObjectProperty( p );
    kb.addObjectProperty( q );
    kb.addObjectProperty( invP );
    kb.addObjectProperty( invQ );

    // first add the ABox assertions to make sure none is ignored
    kb.addPropertyValue( p, a, b );
    kb.addPropertyValue( q, a, b );

    // add the subproperty axiom later
    kb.addSubProperty( p, q );
    kb.addInverseProperty( p, invP );
    kb.addInverseProperty( q, invQ );

    // force b to be merged to one of c or d
    kb.addType( b, or( value( c ), value( d ) ) );

    assertTrue( kb.isConsistent() );

    // ask a query that will force the merge to be restored. with the bug
    // the q would not be restored causing either an internal exception or
    // the query to fail
    assertTrue( kb.isType( b, and( some( invP, value( a ) ), some( invQ, value( a ) ) ) ) );
  }
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.