Skip to content

Commit 638022b

Browse files
committed
Stabilization of tests (various fixes in Select syntax)
1 parent dfa2ebb commit 638022b

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

RDFSharp/Model/RDFGraph.cs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public IEnumerator<RDFTriple> TriplesEnumerator
5757
Dictionary<long, RDFLiteral> literals = (Dictionary<long, RDFLiteral>)Triples.ExtendedProperties["LIT"]!;
5858
foreach (DataRow triple in Triples.Rows)
5959
{
60-
yield return triple.Field<RDFModelEnums.RDFTripleFlavors>("?TFV") == RDFModelEnums.RDFTripleFlavors.SPO
60+
yield return triple.Field<byte>("?TFV") == 1
6161
? new RDFTriple(resources[triple.Field<long>("?SID")], resources[triple.Field<long>("?PID")], resources[triple.Field<long>("?OID")])
6262
: new RDFTriple(resources[triple.Field<long>("?SID")], resources[triple.Field<long>("?PID")], literals[triple.Field<long>("?OID")]);
6363
}
@@ -87,7 +87,7 @@ public RDFGraph()
8787
Triples.Columns.Add("?SID", typeof(long));
8888
Triples.Columns.Add("?PID", typeof(long));
8989
Triples.Columns.Add("?OID", typeof(long));
90-
Triples.Columns.Add("?TFV", typeof(RDFModelEnums.RDFTripleFlavors));
90+
Triples.Columns.Add("?TFV", typeof(byte));
9191
Triples.PrimaryKey = [Triples.Columns["?TID"]];
9292
Triples.ExtendedProperties.Add("RES", new Dictionary<long, RDFResource>());
9393
Triples.ExtendedProperties.Add("LIT", new Dictionary<long, RDFLiteral>());
@@ -271,18 +271,18 @@ public RDFGraph RemoveTriple(RDFTriple triple)
271271
Triples.Rows.Remove(delRow);
272272

273273
//Update metadata with elements from the given triple
274-
if (Triples.Select($"?SID == {triple.Subject.PatternMemberID} OR ?PID == {triple.Subject.PatternMemberID} OR (?OID == {triple.Subject.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO})").Length == 0)
274+
if (Triples.Select($"[?SID] = {triple.Subject.PatternMemberID} OR [?PID] = {triple.Subject.PatternMemberID} OR ([?OID] = {triple.Subject.PatternMemberID} AND [?TFV] = 1)").Length == 0)
275275
((Dictionary<long, RDFResource>)Triples.ExtendedProperties["RES"])!.Remove(triple.Subject.PatternMemberID);
276-
if (Triples.Select($"?SID == {triple.Predicate.PatternMemberID} OR ?PID == {triple.Predicate.PatternMemberID} OR (?OID == {triple.Predicate.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO})").Length == 0)
276+
if (Triples.Select($"[?SID] = {triple.Predicate.PatternMemberID} OR [?PID] = {triple.Predicate.PatternMemberID} OR ([?OID] = {triple.Predicate.PatternMemberID} AND [?TFV] = 1)").Length == 0)
277277
((Dictionary<long, RDFResource>)Triples.ExtendedProperties["RES"])!.Remove(triple.Predicate.PatternMemberID);
278278
switch (triple.TripleFlavor)
279279
{
280280
case RDFModelEnums.RDFTripleFlavors.SPO:
281-
if (Triples.Select($"?SID == {triple.Object.PatternMemberID} OR ?PID == {triple.Object.PatternMemberID} OR (?OID == {triple.Object.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO})").Length == 0)
281+
if (Triples.Select($"[?SID] = {triple.Object.PatternMemberID} OR [?PID] = {triple.Object.PatternMemberID} OR ([?OID] = {triple.Object.PatternMemberID} AND [?TFV] = 1)").Length == 0)
282282
((Dictionary<long, RDFResource>)Triples.ExtendedProperties["RES"])!.Remove(triple.Object.PatternMemberID);
283283
break;
284284
case RDFModelEnums.RDFTripleFlavors.SPL:
285-
if (Triples.Select($"?OID == {triple.Object.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPL}").Length == 0)
285+
if (Triples.Select($"[?OID] = {triple.Object.PatternMemberID} AND [?TFV] = 2").Length == 0)
286286
((Dictionary<long, RDFLiteral>)Triples.ExtendedProperties["LIT"])!.Remove(triple.Object.PatternMemberID);
287287
break;
288288
}
@@ -341,17 +341,17 @@ public List<RDFTriple> SelectTriples(RDFResource s=null, RDFResource p=null, RDF
341341
if (l != null) queryFilters.Append('L');
342342
DataRow[] selectedTriples = queryFilters.ToString() switch
343343
{
344-
"S" => Triples.Select($"?SID == {s!.PatternMemberID}"),
345-
"P" => Triples.Select($"?PID == {p!.PatternMemberID}"),
346-
"O" => Triples.Select($"?OID == {o!.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO}"),
347-
"L" => Triples.Select($"?OID == {l!.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPL}"),
348-
"SP" => Triples.Select($"?SID == {s!.PatternMemberID} AND ?PID == {p!.PatternMemberID}"),
349-
"SO" => Triples.Select($"?SID == {s!.PatternMemberID} AND ?OID == {o!.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO}"),
350-
"SL" => Triples.Select($"?SID == {s!.PatternMemberID} AND ?OID == {l!.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPL}"),
351-
"PO" => Triples.Select($"?PID == {p!.PatternMemberID} AND ?OID == {o!.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO}"),
352-
"PL" => Triples.Select($"?PID == {p!.PatternMemberID} AND ?OID == {l!.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPL}"),
353-
"SPO" => Triples.Select($"?SID == {s!.PatternMemberID} AND ?PID == {p!.PatternMemberID} AND ?OID == {o!.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO}"),
354-
"SPL" => Triples.Select($"?SID == {s!.PatternMemberID} AND ?PID == {p!.PatternMemberID} AND ?OID == {l!.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPL}"),
344+
"S" => Triples.Select($"[?SID] = {s!.PatternMemberID}"),
345+
"P" => Triples.Select($"[?PID] = {p!.PatternMemberID}"),
346+
"O" => Triples.Select($"[?OID] = {o!.PatternMemberID} AND [?TFV] = 1"),
347+
"L" => Triples.Select($"[?OID] = {l!.PatternMemberID} AND [?TFV] = 2"),
348+
"SP" => Triples.Select($"[?SID] = {s!.PatternMemberID} AND [?PID] = {p!.PatternMemberID}"),
349+
"SO" => Triples.Select($"[?SID] = {s!.PatternMemberID} AND [?OID] = {o!.PatternMemberID} AND [?TFV] = 1"),
350+
"SL" => Triples.Select($"[?SID] = {s!.PatternMemberID} AND [?OID] = {l!.PatternMemberID} AND [?TFV] = 2"),
351+
"PO" => Triples.Select($"[?PID] = {p!.PatternMemberID} AND [?OID] = {o!.PatternMemberID} AND [?TFV] = 1"),
352+
"PL" => Triples.Select($"[?PID] = {p!.PatternMemberID} AND [?OID] = {l!.PatternMemberID} AND [?TFV] = 2"),
353+
"SPO" => Triples.Select($"[?SID] = {s!.PatternMemberID} AND [?PID] = {p!.PatternMemberID} AND [?OID] = {o!.PatternMemberID} AND [?TFV] = 1"),
354+
"SPL" => Triples.Select($"[?SID] = {s!.PatternMemberID} AND [?PID] = {p!.PatternMemberID} AND [?OID] = {l!.PatternMemberID} AND [?TFV] = 2"),
355355
_ => [.. Triples.Rows.Cast<DataRow>()]
356356
};
357357

@@ -361,13 +361,13 @@ public List<RDFTriple> SelectTriples(RDFResource s=null, RDFResource p=null, RDF
361361
{
362362
RDFResource subj = resources[selectedTriple.Field<long>("?SID")];
363363
RDFResource pred = resources[selectedTriple.Field<long>("?PID")];
364-
switch (selectedTriple.Field<RDFModelEnums.RDFTripleFlavors>("?TFV"))
364+
switch (selectedTriple.Field<byte>("?TFV"))
365365
{
366-
case RDFModelEnums.RDFTripleFlavors.SPO:
366+
case 1: //SPO
367367
RDFResource obj = resources[selectedTriple.Field<long>("?OID")];
368368
result.Add(new RDFTriple(subj, pred, obj));
369369
break;
370-
case RDFModelEnums.RDFTripleFlavors.SPL:
370+
case 2: //SPL
371371
RDFLiteral lit = literals[selectedTriple.Field<long>("?OID")];
372372
result.Add(new RDFTriple(subj, pred, lit));
373373
break;

RDFSharp/Model/Serializers/RDFXml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ internal static void Serialize(RDFGraph graph, Stream outputStream)
103103
ContainerType =
104104
t.Object.Equals(RDFVocabulary.RDF.ALT) ? RDFModelEnums.RDFContainerTypes.Alt :
105105
t.Object.Equals(RDFVocabulary.RDF.BAG) ? RDFModelEnums.RDFContainerTypes.Bag : RDFModelEnums.RDFContainerTypes.Seq,
106-
IsFloatingContainer = graph.Triples.Select($"?OID == {t.Subject.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO}").Length == 0
106+
IsFloatingContainer = graph.Triples.Select($"[?OID] = {t.Subject.PatternMemberID} AND [?TFV] = 1").Length == 0
107107
}).ToList();
108108

109109
//Fetch data describing collections of the graph
@@ -113,7 +113,7 @@ internal static void Serialize(RDFGraph graph, Stream outputStream)
113113
CollectionUri = (RDFResource)t.Subject,
114114
CollectionValue = rdfFirst[s: (RDFResource)t.Subject].FirstOrDefault()?.Object,
115115
CollectionNext = rdfRest[s: (RDFResource)t.Subject].FirstOrDefault()?.Object,
116-
IsFloatingCollection = graph.Triples.Select($"?OID == {t.Subject.PatternMemberID} AND ?TFV == {RDFModelEnums.RDFTripleFlavors.SPO}").Length == 0,
116+
IsFloatingCollection = graph.Triples.Select($"[?OID] = {t.Subject.PatternMemberID} AND [?TFV] = 1").Length == 0,
117117
HasAllResourceItems = RDFModelUtilities.DeserializeCollectionFromGraph(graph, (RDFResource)t.Subject, RDFModelEnums.RDFTripleFlavors.SPO, true)
118118
.Items.TrueForAll(collItem => collItem is RDFResource)
119119
}).ToList();

0 commit comments

Comments
 (0)