Esempio n. 1
0
 public SparqlUri(SparqlExpression value, RdfQuery11Translator q)  : base(value.AggregateLevel, value.IsStoreUsed)
 {
     if (value.Const != null)
     {
         Const = new OV_iri(q.prolog.GetFromString((string)value.Const.Content));
     }
     else
     {
         Operator = result => new OV_iri(q.prolog.GetFromString((string)value.Operator(result).Content));
         //SetExprType(ObjectVariantEnum.Iri);
         TypedOperator =
             result => new OV_iri(q.prolog.GetFromString((string)value.TypedOperator(result).Content));
     }
 }
Esempio n. 2
0
 void Object(out ObjectVariants value)
 {
     value = null;  string iri;
     if (StartOf(3))
     {
         if (la.kind == 1 || la.kind == 2 || la.kind == 3)
         {
             Iri(out iri);
         }
         else if (la.kind == 4 || la.kind == 13)
         {
             Blanknode(out iri);
         }
         else if (la.kind == 24)
         {
             Collection(out iri);
         }
         else
         {
             Blanknodepropertylist(out iri);
         }
         value = new OV_iri(iri);
     }
     else if (StartOf(6))
     {
         Rdfliteral(out value);
     }
     else if (la.kind == 6 || la.kind == 7 || la.kind == 8)
     {
         Numericliteral(out value);
     }
     else if (la.kind == 27 || la.kind == 28)
     {
         Booleanliteral(out value);
     }
     else
     {
         SynErr(35);
     }
 }
Esempio n. 3
0
 public SparqlDataType(SparqlExpression value)     : base(value.AggregateLevel, value.IsStoreUsed)
 {
     //SetExprType(ObjectVariantEnum.Iri);
     // value.SetExprType(ExpressionTypeEnum.literal);
     if (value.Const != null)
     {
         Const = new OV_iri(((ILiteralNode)value.Const).DataType);
     }
     else
     {
         Operator          =
             TypedOperator = result =>
         {
             var r           = value.TypedOperator(result);
             var literalNode = r as ILiteralNode;
             if (literalNode != null)
             {
                 return(new OV_iri(literalNode.DataType));
             }
             throw new ArgumentException();
         };
     }
 }
Esempio n. 4
0
        public void TestSimpleTable()
        {
            Assert.AreEqual(12, _store.GetTriplesCount());

            Assert.IsTrue(_store.Any());

            var id1IriString   = new OV_iri("id1");
            var nameIriString  = new OV_iri("name");
            var inOrgIriString = new OV_iri("in-org");
            var typeIriString  = new OV_iri("http://www.w3.org/1999/02/22-rdf-syntax-ns#type");

            // получаем коды и iri_Coded
            Assert.IsTrue(_store.NodeGenerator.TryGetUri(id1IriString, out var id1));
            Assert.IsTrue(_store.NodeGenerator.TryGetUri(nameIriString, out var name));
            Assert.IsTrue(_store.NodeGenerator.TryGetUri(typeIriString, out var type));
            Assert.IsTrue(_store.NodeGenerator.TryGetUri(inOrgIriString, out var inOrg));

            var triplesWithSubjectPredicate = _store.GetTriplesWithSubjectPredicate(id1, name);

            Assert.AreEqual(1, triplesWithSubjectPredicate.Count());
            var literalRussia = triplesWithSubjectPredicate.First();

            Assert.AreEqual(new OV_string("Россия"), literalRussia);

            Assert.IsTrue(_store.Contains(id1, name, literalRussia));
            Assert.IsFalse(_store.Contains(name, id1, literalRussia));


            var id1List = _store.GetTriplesWithPredicateObject(name, literalRussia).ToList();

            Assert.AreEqual(1, id1List.Count);
            Assert.AreEqual(id1, id1List.First());

            var nameList = _store.GetTriplesWithSubjectObject(id1, literalRussia).ToList();

            Assert.AreEqual(1, nameList.Count);
            Assert.AreEqual(name, nameList.First());

            var triplesWithId1Subject = _store.GetTriplesWithSubject(id1).ToList();

            Assert.AreEqual(2, triplesWithId1Subject.Count);
            var triplesWithWrongSubject = _store.GetTriplesWithSubject(literalRussia).ToList();

            Assert.AreEqual(0, triplesWithWrongSubject.Count);

            var triplesWithType = _store.GetTriplesWithPredicate(name).ToList();

            Assert.AreEqual(3, triplesWithType.Count);
            var triplesWithWrongPredicate = _store.GetTriplesWithPredicate(id1).ToList();

            Assert.AreEqual(0, triplesWithWrongPredicate.Count);

            var triplesWithRussia = _store.GetTriplesWithObject(literalRussia).ToList();

            Assert.AreEqual(1, triplesWithRussia.Count);
            var id1NameRussia = triplesWithRussia.First();

            Assert.AreEqual(id1, id1NameRussia.Subject);
            Assert.AreEqual(name, id1NameRussia.Predicate);
            Assert.AreEqual(literalRussia, id1NameRussia.Object);
            var triplesWithId1Object = _store.GetTriplesWithObject(id1).ToList();

            Assert.AreEqual(2, triplesWithId1Object.Count);
            foreach (var tripleWithId1Obj in triplesWithId1Object)
            {
                Assert.AreEqual(id1, tripleWithId1Obj.Object);
                Assert.AreEqual(inOrg, tripleWithId1Obj.Predicate);
            }
        }