Skip to content
Snippets Groups Projects

Release: Sprint/2022-01

Merged Petar Hristov requested to merge dev into master
6 files
+ 63
19
Compare changes
  • Side-by-side
  • Inline
Files
6
using System.Collections.Generic;
using System;
 
using System.Collections.Generic;
using VDS.RDF;
using VDS.RDF;
 
using VDS.RDF.Parsing;
namespace Coscine.SemanticSearch
namespace Coscine.SemanticSearch
{
{
@@ -26,12 +28,31 @@ namespace Coscine.SemanticSearch
@@ -26,12 +28,31 @@ namespace Coscine.SemanticSearch
/// <returns>An enumerator of general additional triples.</returns>
/// <returns>An enumerator of general additional triples.</returns>
public IEnumerable<Triple> GetGeneralAdditionalTriples(string graphName)
public IEnumerable<Triple> GetGeneralAdditionalTriples(string graphName)
{
{
List<Triple> triples = new List<Triple>();
var triples = new List<Triple>();
foreach (var generalAdditionalRule in _generalAdditionalRules)
foreach (var generalAdditionalRule in _generalAdditionalRules)
{
{
var constructedTriplesGeneral = generalAdditionalRule.ExecuteRule(graphName);
var constructedTriplesGeneral = generalAdditionalRule.ExecuteRule(graphName);
triples.AddRange(constructedTriplesGeneral[graphName]);
foreach (var triple in constructedTriplesGeneral[graphName])
;
{
 
// If the object is a literal, it might be URL encoded, so this is lifted here
 
if (triple.Object.NodeType == NodeType.Literal
 
&&
 
(
 
((LiteralNode)triple.Object).DataType == null
 
|| ((LiteralNode)triple.Object).DataType == new Uri(XmlSpecsHelper.XmlSchemaDataTypeString)
 
)
 
&& triple.Predicate.ToString() != "https://purl.org/coscine/terms/search#graphName")
 
{
 
var literal = (LiteralNode)triple.Object;
 
var newLiteral = literal.Graph.CreateLiteralNode(Uri.UnescapeDataString(literal.Value), literal.Language);
 
 
triples.Add(new Triple(triple.Subject, triple.Predicate, newLiteral, newLiteral.Graph));
 
}
 
else
 
{
 
triples.Add(triple);
 
}
 
}
}
}
return triples;
return triples;
}
}
Loading