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)); } }
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); } }
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(); }; } }
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); } }