diff --git a/src/SQL2Linked/Implementations/ResourceTypeStructuralData.cs b/src/SQL2Linked/Implementations/ResourceTypeStructuralData.cs
index fe455a9233c456e34294f7350c1765e1f7166234..b36ec5e84d262268b174956ba77807a0d9c0fd95 100644
--- a/src/SQL2Linked/Implementations/ResourceTypeStructuralData.cs
+++ b/src/SQL2Linked/Implementations/ResourceTypeStructuralData.cs
@@ -9,6 +9,7 @@ namespace SQL2Linked.Implementations
public readonly string ResourceTypeUrlPrefix = "https://purl.org/coscine/resourcetype";
public readonly Uri RdfType = new("http://www.w3.org/1999/02/22-rdf-syntax-ns#type");
public readonly Uri DcatDataService = new ("http://www.w3.org/ns/dcat#DataService");
+ public readonly Uri dctermsTitle = new("http://purl.org/dc/terms/title");
public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<ResourceType> entries)
{
@@ -21,25 +22,47 @@ namespace SQL2Linked.Implementations
var graph = RdfStoreConnector.GetGraph(resourceTypeGraphName);
// check if a triple with a dcat:DataService already exists in the resourcetype graph
- var getTriples = graph.GetTriplesWithObject(DcatDataService);
+ var getTriplesDcatDataService = graph.GetTriplesWithObject(DcatDataService);
- if (!getTriples.Any())
+ if (!getTriplesDcatDataService.Any())
{
graph.Assert(
new Triple(
- graph.CreateBlankNode(),
+ graph.CreateUriNode(new Uri(resourceTypeGraphName)),
graph.CreateUriNode(RdfType),
graph.CreateUriNode(DcatDataService)
)
);
- graphs.Add(graph);
+ Console.WriteLine($"For resource type '{entry.DisplayName}' will migrate triple '{graph.BaseUri}' a dcat:DataService. ");
+ }
+ else
+ {
+ Console.WriteLine($"For resource type '{entry.DisplayName}' will NOT migrate triple '{graph.BaseUri}' a dcat:DataService. ");
+ }
+
+ // check if a triple with dcterms:title '{entry.DisplayName}' already exists in the role graph
+ var getTriplesDctermsTitle = graph.GetTriplesWithPredicate(dctermsTitle);
- Console.WriteLine($"Will migrate resource type '{entry.DisplayName}' with id '{entry.Id}'.");
+ if (!getTriplesDctermsTitle.Any())
+ {
+ graph.Assert(
+ new Triple(
+ graph.CreateUriNode(new Uri(resourceTypeGraphName)),
+ graph.CreateUriNode(dctermsTitle),
+ graph.CreateLiteralNode(entry.DisplayName)
+ )
+ );
+
+ Console.WriteLine($"For resource type '{entry.DisplayName}' will migrate triple '{graph.BaseUri}' dcterms:title '{entry.DisplayName}'. ");
}
else
{
- Console.WriteLine($"Will NOT migrate resource type '{entry.DisplayName}' with id '{entry.Id}'.");
+ Console.WriteLine($"For resource type '{entry.DisplayName}' will NOT migrate triple '{graph.BaseUri}' dcterms:title '{entry.DisplayName}'. ");
+ }
+ if (!getTriplesDcatDataService.Any() || !getTriplesDctermsTitle.Any())
+ {
+ graphs.Add(graph);
}
}
return graphs;
diff --git a/src/SQL2Linked/Implementations/UserStructuralData.cs b/src/SQL2Linked/Implementations/UserStructuralData.cs
index 14abb64ea8a4d97f7af0d1b2883682974238be3b..1433f219d9a508b3b219e3982d117b313589eeb9 100644
--- a/src/SQL2Linked/Implementations/UserStructuralData.cs
+++ b/src/SQL2Linked/Implementations/UserStructuralData.cs
@@ -27,7 +27,7 @@ namespace SQL2Linked.Implementations
{
graph.Assert(
new Triple(
- graph.CreateBlankNode(),
+ graph.CreateUriNode(new Uri(userGraphName)),
graph.CreateUriNode(RdfType),
graph.CreateUriNode(FoafPerson)
)