Esempio n. 1
0
  // @Test
  public void testNoHead() throws RecognitionException {

    datalog = parser.parse(CQ_STRINGS[5]);

    EXPECTED_RULE_SIZE = 1;
    List<CQIE> rules = datalog.getRules();
    assertTrue("Mismatch rule size!", rules.size() == EXPECTED_RULE_SIZE);

    // Rule #1
    // -- The Head
    Function head = rules.get(0).getHead();
    assertNull("Head is not null!", head);

    // -- The Body
    EXPECTED_BODY_SIZE = 1;
    List<Function> body = rules.get(0).getBody();
    assertNotNull("Body is null!", body);
    assertTrue("Mismatch body size!", body.size() == EXPECTED_BODY_SIZE);

    // ---- Body atom #1
    uri = ((Function) body.get(0)).getFunctionSymbol().getName();
    assertEquals("Mismatch predicate name!", uri, "http://example.org/stuff/1.0/q");

    EXPECTED_BODY_TERM_SIZE = 1;
    terms = ((Function) body.get(0)).getTerms();
    assertEquals("Mismatch term size!", terms.size(), EXPECTED_BODY_TERM_SIZE);

    term = terms.get(0);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "x");
  }
Esempio n. 2
0
  // @Test
  public void testNoBody() throws RecognitionException {

    datalog = parser.parse(CQ_STRINGS[6]);

    EXPECTED_RULE_SIZE = 1;
    List<CQIE> rules = datalog.getRules();
    assertTrue("Mismatch rule size!", rules.size() == EXPECTED_RULE_SIZE);

    // Rule #1
    // -- The Head
    Function head = rules.get(0).getHead();
    assertNotNull("Head is null!", head);

    uri = head.getFunctionSymbol().getName();
    assertEquals("Mismatch predicate name!", uri, "http://www.abc.org/1999/02/22-abc-syntax-ns#p");

    EXPECTED_HEAD_TERM_SIZE = 1;
    terms = head.getTerms();
    assertEquals("Mismatch term size!", terms.size(), EXPECTED_HEAD_TERM_SIZE);

    term = terms.get(0);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "x");

    // -- The Body
    EXPECTED_BODY_SIZE = 1;
    List<Function> body = rules.get(0).getBody();
    assertTrue("Body is not empty!", body.size() == 0);
  }
Esempio n. 3
0
  // @Test
  public void testBasicInputDatalogSyntax() throws RecognitionException {

    datalog = parser.parse(CQ_STRINGS[0]);

    EXPECTED_RULE_SIZE = 1;
    List<CQIE> rules = datalog.getRules();
    assertTrue("Mismatch rule size!", rules.size() == EXPECTED_RULE_SIZE);

    // Rule #1
    // -- The Head
    Function head = rules.get(0).getHead();
    assertNotNull("Head is null!", head);

    uri = head.getFunctionSymbol().getName().toString();
    assertEquals("Mismatch predicate name!", uri, "http://www.abc.org/1999/02/22-abc-syntax-ns#p");

    EXPECTED_HEAD_TERM_SIZE = 2;
    terms = head.getTerms();
    assertEquals("Mismatch term size!", terms.size(), EXPECTED_HEAD_TERM_SIZE);

    term = terms.get(0);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "x");

    term = terms.get(1);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "y");

    // -- The Body
    EXPECTED_BODY_SIZE = 2;
    List<Function> body = rules.get(0).getBody();
    assertNotNull("Body is null!", body);
    assertTrue("Mismatch body size!", body.size() == EXPECTED_BODY_SIZE);

    // ---- Body atom #1
    uri = ((Function) body.get(0)).getFunctionSymbol().getName();
    assertEquals("Mismatch predicate name!", uri, "http://example.org/stuff/1.0/q");

    EXPECTED_BODY_TERM_SIZE = 1;
    terms = ((Function) body.get(0)).getTerms();
    assertEquals("Mismatch term size!", terms.size(), EXPECTED_BODY_TERM_SIZE);

    term = terms.get(0);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "x");

    // ---- Body atom #2
    uri = ((Function) body.get(1)).getFunctionSymbol().getName();
    assertEquals("Mismatch predicate name!", uri, "http://base.org/stuff/1.0/r");

    EXPECTED_BODY_TERM_SIZE = 1;
    terms = ((Function) body.get(1)).getTerms();
    assertEquals("Mismatch term size!", terms.size(), EXPECTED_BODY_TERM_SIZE);

    term = terms.get(0);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "y");
  }
Esempio n. 4
0
  // @Test
  public void testFullNameWithUri() throws RecognitionException {

    datalog = parser.parse(CQ_STRINGS[10]);

    EXPECTED_RULE_SIZE = 1;
    List<CQIE> rules = datalog.getRules();
    assertTrue("Mismatch rule size!", rules.size() == EXPECTED_RULE_SIZE);

    // Rule #1
    // -- The Head
    Function head = rules.get(0).getHead();
    assertNotNull("Head is null!", head);

    uri = head.getFunctionSymbol().getName();
    assertEquals("Mismatch predicate name!", uri, "http://www.abc.org/1999/02/22-abc-syntax-ns#p");

    EXPECTED_HEAD_TERM_SIZE = 2;
    terms = head.getTerms();
    assertEquals("Mismatch term size!", terms.size(), EXPECTED_HEAD_TERM_SIZE);

    term = terms.get(0);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "x");

    term = terms.get(1);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "y");

    // -- The Body
    EXPECTED_BODY_SIZE = 2;
    List<Function> body = rules.get(0).getBody();
    assertNotNull("Body is null!", body);
    assertTrue("Mismatch body size!", body.size() == EXPECTED_BODY_SIZE);

    // ---- Body atom #1
    uri = ((Function) body.get(0)).getFunctionSymbol().getName();
    assertEquals("Mismatch predicate name!", uri, "http://example.org/stuff/1.0/q");

    EXPECTED_BODY_TERM_SIZE = 1;
    terms = ((Function) body.get(0)).getTerms();
    assertEquals("Mismatch term size!", terms.size(), EXPECTED_BODY_TERM_SIZE);

    term = terms.get(0);
    assertTrue("Mismatch term type!", term instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) term).getName(), "x");

    // ---- Body atom #2
    uri = ((Function) body.get(1)).getFunctionSymbol().getName();
    assertEquals("Mismatch predicate name!", uri, "http://base.org/stuff/1.0/r");

    EXPECTED_BODY_TERM_SIZE = 2;
    terms = ((Function) body.get(1)).getTerms();
    assertEquals("Mismatch term size!", terms.size(), EXPECTED_BODY_TERM_SIZE);

    term = terms.get(0);
    assertTrue("Mismatch term type!", term instanceof FunctionalTermImpl);
    assertEquals(
        "Mismatch variable name!",
        ((FunctionalTermImpl) term).getFunctionSymbol().toString(),
        "http://example.org/stuff/1.0/s");

    // ------ Object term
    List<Term> objVarTerms = ((FunctionalTermImpl) term).getTerms();
    assertEquals("Mismatch term size!", objVarTerms.size(), 2);

    Term objVarTerm = objVarTerms.get(0);
    assertTrue("Mismatch term type!", objVarTerm instanceof Variable);
    assertEquals("Mismatch variable name!", ((Variable) objVarTerm).getName(), "y");

    objVarTerm = objVarTerms.get(1);
    assertTrue("Mismatch term type!", objVarTerm instanceof ValueConstantImpl);
    assertEquals("Mismatch variable name!", ((ValueConstantImpl) objVarTerm).getValue(), "Student");
    // ------ Object term ends.

    term = terms.get(1);
    assertTrue("Mismatch term type!", term instanceof URIConstantImpl);
    assertEquals(
        "Mismatch variable name!",
        ((URIConstantImpl) term).getURI().toString(),
        "http://example.org/stuff/1.1/FUB");
  }