Skip to content
Snippets Groups Projects

Release: Sprint/2022 12 :robot:

Merged Petar Hristov requested to merge dev into main
1 file
+ 57
2
Compare changes
  • Side-by-side
  • Inline
@@ -6,10 +6,65 @@ namespace SQL2Linked.Implementations
@@ -6,10 +6,65 @@ namespace SQL2Linked.Implementations
{
{
public class RoleStructuralData : StructuralData<Role, RoleModel>
public class RoleStructuralData : StructuralData<Role, RoleModel>
{
{
 
public readonly string RoleUrlPrefix = "https://purl.org/coscine/roles";
 
public readonly Uri RdfType = new("http://www.w3.org/1999/02/22-rdf-syntax-ns#type");
 
public readonly Uri orgRole = new("http://www.w3.org/ns/org#Role");
 
public readonly Uri dctermsTitle = new("http://purl.org/dc/terms/title");
 
public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<Role> entries)
public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<Role> entries)
{
{
// ToDo: Implement
var graphs = new List<IGraph>();
throw new NotImplementedException();
 
foreach (var entry in entries)
 
{
 
var roleGraphName = $"{RoleUrlPrefix}/{entry.Id}";
 
var graph = RdfStoreConnector.GetGraph(roleGraphName);
 
 
// check if a triple with a org:role already exists in the role graph
 
var getTriplesOrgRole = graph.GetTriplesWithObject(orgRole);
 
 
if (!getTriplesOrgRole.Any())
 
{
 
graph.Assert(
 
new Triple(
 
graph.CreateUriNode(new Uri(roleGraphName)),
 
graph.CreateUriNode(RdfType),
 
graph.CreateUriNode(orgRole)
 
)
 
);
 
 
Console.WriteLine($"For role '{entry.DisplayName}' will migrate triple '{graph.BaseUri}' a org:Role. ");
 
}
 
else
 
{
 
Console.WriteLine($"For role '{entry.DisplayName}' will NOT migrate triple '{graph.BaseUri}' a org:Role. ");
 
}
 
 
// check if a triple with dcterms:title '{entry.DisplayName}' already exists in the role graph
 
var getTriplesDctermsTitle = graph.GetTriplesWithPredicate(dctermsTitle);
 
 
if (!getTriplesDctermsTitle.Any())
 
{
 
graph.Assert(
 
new Triple(
 
graph.CreateUriNode(new Uri(roleGraphName)),
 
graph.CreateUriNode(dctermsTitle),
 
graph.CreateLiteralNode(entry.DisplayName)
 
)
 
);
 
 
Console.WriteLine($"For role '{entry.DisplayName}' will migrate triple '{graph.BaseUri}' dcterms:title '{entry.DisplayName}'. ");
 
}
 
else
 
{
 
Console.WriteLine($"For role '{entry.DisplayName}' will NOT migrate triple '{graph.BaseUri}' dcterms:title '{entry.DisplayName}'. ");
 
}
 
if (!getTriplesOrgRole.Any() || !getTriplesDctermsTitle.Any())
 
{
 
graphs.Add(graph);
 
}
 
}
 
return graphs;
}
}
}
}
}
}
 
\ No newline at end of file
Loading