Ejemplo n.º 1
0
        public void cloneReturnsTripleStoreContainingSameStatements()
        {
            TripleStore store = MakeNewTripleStore();

            store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new BlankNode()));
            store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred2"), new PlainLiteral("foo", "jp")));
            store.Add(new Statement(new UriRef("http://example.com/the-thing"), new UriRef("http://example.com/pred3"), new TypedLiteral("1", "http://example.com/types/numeric")));
            store.Add(new Statement(new UriRef("http://example.com/other-thing"), new UriRef("http://example.com/pred4"), new UriRef("http://example.com/the-thing")));

            TripleStore clone = (TripleStore)store.Clone();

            Assert.AreEqual(store.NodeCount, clone.NodeCount);
            Assert.AreEqual(store.ResourceCount, clone.ResourceCount);


            TripleStoreVerifier verifier = new TripleStoreVerifier();

            verifier.expect("_:a <http://example.com/pred> _:b .");
            verifier.expect("_:c <http://example.com/pred2> \"foo\"@jp .");
            verifier.expect("<http://example.com/the-thing> <http://example.com/pred3> \"1\"^^<http://example.com/types/numeric> .");
            verifier.expect("<http://example.com/other-thing> <http://example.com/pred4> <http://example.com/the-thing> .");

            Assert.IsTrue(verifier.verify(clone));

            clone.Clear();
            store.Clear();
        }
Ejemplo n.º 2
0
        public void AddAllowsSingleQuotesInUriRefs()
        {
            TripleStore store = MakeNewTripleStore();

            store.Add(new Statement(new UriRef("ex:subj"), new UriRef("ex:pred"), new UriRef("ex:fo'o")));

            TripleStoreVerifier verifier = new TripleStoreVerifier();

            verifier.expect("<ex:subj> <ex:pred> <ex:fo'o> .");

            Assert.IsTrue(verifier.verify(store));
            store.Clear();
        }
Ejemplo n.º 3
0
        public void AddAllowsSingleQuotesInTypedLiteralValues()
        {
            TripleStore store = MakeNewTripleStore();

            store.Add(new Statement(new UriRef("ex:subj"), new UriRef("ex:pred"), new TypedLiteral("d'arby", "ex:foo")));

            TripleStoreVerifier verifier = new TripleStoreVerifier();

            verifier.expect("<ex:subj> <ex:pred> \"d'arby\"^^<ex:foo> .");

            Assert.IsTrue(verifier.verify(store));
            store.Clear();
        }
Ejemplo n.º 4
0
        public void AddAllowsSingleQuotesInLiteralLanguages()
        {
            TripleStore store = MakeNewTripleStore();

            store.Add(new Statement(new UriRef("ex:subj"), new UriRef("ex:pred"), new PlainLiteral("darby", "f'oo")));

            TripleStoreVerifier verifier = new TripleStoreVerifier();

            verifier.expect("<ex:subj> <ex:pred> \"darby\"@f'oo .");

            Assert.IsTrue(verifier.verify(store));
            store.Clear();
        }
Ejemplo n.º 5
0
        public void AddDoesNotAllowDuplicates()
        {
            TripleStore store = MakeNewTripleStore();

            store.Add(new Statement(new UriRef("http://example.com/subj"), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj")));
            store.Add(new Statement(new UriRef("http://example.com/subj"), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj")));
            TripleStoreVerifier verifier = new TripleStoreVerifier();

            verifier.expect("<http://example.com/subj> <http://example.com/pred> <http://example.com/obj> .");

            Assert.IsTrue(verifier.verify(store));
            store.Clear();
        }
Ejemplo n.º 6
0
        public void AddStatementDistinguishesDifferentBlankNodeInstancesForObjects()
        {
            TripleStore store = MakeNewTripleStore();

            store.Add(new Statement(new UriRef("http://example.com/subj1"), new UriRef("http://example.com/pred"), new BlankNode()));
            store.Add(new Statement(new UriRef("http://example.com/subj1"), new UriRef("http://example.com/pred"), new BlankNode()));

            TripleStoreVerifier verifier = new TripleStoreVerifier();

            verifier.expect("<http://example.com/subj1> <http://example.com/pred> _:blank1 .");
            verifier.expect("<http://example.com/subj1> <http://example.com/pred> _:blank2 .");

            Assert.IsTrue(verifier.verify(store));
            store.Clear();
        }
Ejemplo n.º 7
0
        public void AddTripleStoreWithCommonNodes()
        {
            UriRef node1 = new  UriRef("any:node1");
            UriRef node2 = new  UriRef("any:node2");
            UriRef node3 = new  UriRef("any:node3");
            UriRef node4 = new  UriRef("any:node4");
            UriRef node5 = new  UriRef("any:node5");
            UriRef node6 = new  UriRef("any:node6");

            UriRef predicate1 = new UriRef("any:predicate1");
            UriRef predicate2 = new UriRef("any:predicate2");
            UriRef predicate3 = new UriRef("any:predicate3");

            Statement statement1 = new Statement(node1, predicate1, node2);
            Statement statement2 = new Statement(node3, predicate2, node4);
            Statement statement3 = new Statement(node5, predicate3, node6);
            Statement statement4 = new Statement(node1, predicate2, node6);

            TripleStore firstStore = MakeNewTripleStore();

            firstStore.Add(statement1);

            TripleStore secondStore = MakeNewTripleStore();

            secondStore.Add(statement2);
            secondStore.Add(statement3);
            secondStore.Add(statement4);


            firstStore.Add(secondStore);
            TripleStoreVerifier verifierFirst = new TripleStoreVerifier();

            verifierFirst.expect("<any:node1> <any:predicate1> <any:node2> .");
            verifierFirst.expect("<any:node3> <any:predicate2> <any:node4> .");
            verifierFirst.expect("<any:node5> <any:predicate3> <any:node6> .");
            verifierFirst.expect("<any:node1> <any:predicate2> <any:node6> .");
            Assert.IsTrue(verifierFirst.verify(firstStore), "first knowledge base includes triples from second");

            TripleStoreVerifier verifierSecond = new TripleStoreVerifier();

            verifierSecond.expect("<any:node3> <any:predicate2> <any:node4> .");
            verifierSecond.expect("<any:node5> <any:predicate3> <any:node6> .");
            verifierSecond.expect("<any:node1> <any:predicate2> <any:node6> .");

            Assert.IsTrue(verifierSecond.verify(secondStore), "second knowledge base is unchanged");
            firstStore.Clear();
            secondStore.Clear();
        }
Ejemplo n.º 8
0
        public void AddDistinguishesDifferentBlankNodeInstances()
        {
            Node theSubject      = new NodeStub("http://example.com/subj");
            Arc  thePredicate    = new UriRef("http://example.com/pred");
            Node theFirstObject  = new UriRef("http://example.com/obj1");
            Node theSecondObject = new UriRef("http://example.com/obj2");

            TripleStore store = MakeNewTripleStore();

            store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj1")));
            store.Add(new Statement(new BlankNode(), new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj2")));

            TripleStoreVerifier verifier = new TripleStoreVerifier();

            verifier.expect("_:node1 <http://example.com/pred> <http://example.com/obj1> .");
            verifier.expect("_:node2 <http://example.com/pred> <http://example.com/obj2> .");

            Assert.IsTrue(verifier.verify(store));
            store.Clear();
        }
Ejemplo n.º 9
0
        public void AddStatementDistinguishesDifferentBlankNodeInstancesForSubjects()
        {
            TripleStore store = MakeNewTripleStore();

            BlankNode node1 = new BlankNode();
            BlankNode node2 = new BlankNode();

            store.Add(new Statement(node1, new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj1")));
            store.Add(new Statement(node1, new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj2")));
            store.Add(new Statement(node2, new UriRef("http://example.com/pred"), new UriRef("http://example.com/obj2")));

            TripleStoreVerifier verifier = new TripleStoreVerifier();

            verifier.expect("_:node1 <http://example.com/pred> <http://example.com/obj1> .");
            verifier.expect("_:node1 <http://example.com/pred> <http://example.com/obj2> .");
            verifier.expect("_:node2 <http://example.com/pred> <http://example.com/obj2> .");

            Assert.IsTrue(verifier.verify(store));
            store.Clear();
        }
Ejemplo n.º 10
0
        public void RemoveExistingTriple()
        {
            TripleStore store = MakeNewTripleStore();

            BlankNode theSubjectNode   = new BlankNode();
            UriRef    thePredicateNode = new UriRef("http://example.com/pred");
            BlankNode theObjectNode    = new BlankNode();

            store.Add(new Statement(theSubjectNode, thePredicateNode, theObjectNode));

            Resource theSubjectResource   = store.GetResourceDenotedBy(theSubjectNode);
            Resource thePredicateResource = store.GetResourceDenotedBy(thePredicateNode);
            Resource theObjectResource    = store.GetResourceDenotedBy(theObjectNode);

            //store.verbose = true;
            store.Remove(new ResourceStatement(theSubjectResource, thePredicateResource, theObjectResource));

            TripleStoreVerifier verifier = new TripleStoreVerifier();

            Assert.IsTrue(verifier.verify(store));
            store.Clear();
        }
Ejemplo n.º 11
0
        public void AddTripleStoreWithIdenticalNodesDenotingDifferentResources()
        {
            UriRef node1 = new  UriRef("any:node1");
            UriRef node2 = new  UriRef("any:node2");
            UriRef node3 = new  UriRef("any:node3");

            UriRef predicate1 = new UriRef("any:predicate1");
            UriRef predicate2 = new UriRef("any:predicate2");

            Statement statement1 = new Statement(node1, predicate1, node2);
            Statement statement2 = new Statement(node1, predicate2, node3);

            TripleStore firstStore = MakeNewTripleStore();

            firstStore.Add(statement1);

            Resource node1ResourceBefore = firstStore.GetResourceDenotedBy(node1);

            TripleStore secondStore = MakeNewTripleStore();

            firstStore.Add(statement2);

            firstStore.Add(secondStore);

            Resource node1ResourceAfter = firstStore.GetResourceDenotedBy(node1);

            Assert.AreEqual(node1ResourceBefore, node1ResourceAfter);

            TripleStoreVerifier verifierFirst = new TripleStoreVerifier();

            verifierFirst.expect("<any:node1> <any:predicate1> <any:node2> .");
            verifierFirst.expect("<any:node1> <any:predicate2> <any:node3> .");
            Assert.IsTrue(verifierFirst.verify(firstStore), "first knowledge base includes triples from second");

            firstStore.Clear();
            secondStore.Clear();
        }