Skip to content
Snippets Groups Projects
Commit dc975b11 authored by Petar Hristov's avatar Petar Hristov :speech_balloon:
Browse files

Merge branch 'dev' into 'main'

Release: Sprint/2022 17 :robot:

See merge request !14
parents c8a5ef4c 28ae6abc
Branches
No related tags found
1 merge request!14Release: Sprint/2022 17 :robot:
Pipeline #800329 passed
using Coscine.Database.DataModel; using Coscine.Database.DataModel;
using Coscine.Database.Models; using Coscine.Database.Models;
using Coscine.Database.Util;
using VDS.RDF; using VDS.RDF;
namespace SQL2Linked.Implementations namespace SQL2Linked.Implementations
...@@ -17,6 +18,17 @@ namespace SQL2Linked.Implementations ...@@ -17,6 +18,17 @@ namespace SQL2Linked.Implementations
private ProjectRoleModel ProjectRoleModel = new ProjectRoleModel(); private ProjectRoleModel ProjectRoleModel = new ProjectRoleModel();
private ProjectResourceModel ProjectResourceModel = new ProjectResourceModel(); private ProjectResourceModel ProjectResourceModel = new ProjectResourceModel();
// Override to also receive deleted projects
public override IEnumerable<Project> GetAll()
{
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in Model.GetITableFromDatabase(db)
select tableEntry).ToList();
});
}
public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<Project> entries) public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<Project> entries)
{ {
IEnumerable<Visibility> visibilities = VisibilityModel.GetAll(); IEnumerable<Visibility> visibilities = VisibilityModel.GetAll();
......
using Coscine.Database.DataModel; using Coscine.Database.DataModel;
using Coscine.Database.Models; using Coscine.Database.Models;
using Coscine.Database.Util;
using VDS.RDF; using VDS.RDF;
using VDS.RDF.Query; using VDS.RDF.Query;
...@@ -19,6 +20,17 @@ namespace SQL2Linked.Implementations ...@@ -19,6 +20,17 @@ namespace SQL2Linked.Implementations
private ProjectResourceModel ProjectResourceModel = new ProjectResourceModel(); private ProjectResourceModel ProjectResourceModel = new ProjectResourceModel();
private LicenseModel LicenseModel = new LicenseModel(); private LicenseModel LicenseModel = new LicenseModel();
// Override to also receive deleted resources
public override IEnumerable<Resource> GetAll()
{
return DatabaseConnection.ConnectToDatabase((db) =>
{
return
(from tableEntry in Model.GetITableFromDatabase(db)
select tableEntry).ToList();
});
}
public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<Resource> entries) public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<Resource> entries)
{ {
IEnumerable<Visibility> visibilities = VisibilityModel.GetAll(); IEnumerable<Visibility> visibilities = VisibilityModel.GetAll();
...@@ -92,6 +104,12 @@ namespace SQL2Linked.Implementations ...@@ -92,6 +104,12 @@ namespace SQL2Linked.Implementations
AssertToGraphLiteralNode(graph, resourceGraphName, dcterms + "description", entry.Description); AssertToGraphLiteralNode(graph, resourceGraphName, dcterms + "description", entry.Description);
Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{resourceGraphName} {dcterms}description {entry.Description}'. "); Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{resourceGraphName} {dcterms}description {entry.Description}'. ");
// Skipping broken resources
if (string.IsNullOrWhiteSpace(entry.ApplicationProfile))
{
continue;
}
AssertToGraphUriNode(graph, resourceGraphName, dcterms + "conformsTo", entry.ApplicationProfile); AssertToGraphUriNode(graph, resourceGraphName, dcterms + "conformsTo", entry.ApplicationProfile);
Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{resourceGraphName} {dcterms}conformsTo {entry.ApplicationProfile}'. "); Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{resourceGraphName} {dcterms}conformsTo {entry.ApplicationProfile}'. ");
...@@ -107,6 +125,9 @@ namespace SQL2Linked.Implementations ...@@ -107,6 +125,9 @@ namespace SQL2Linked.Implementations
AssertToGraphUriNode(graph, resourceGraphName, foaf + "homepage", resourceGraphName); AssertToGraphUriNode(graph, resourceGraphName, foaf + "homepage", resourceGraphName);
Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{resourceGraphName} {foaf}homepage {resourceGraphName}'. "); Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{resourceGraphName} {foaf}homepage {resourceGraphName}'. ");
AssertToGraphLiteralNode(graph, resourceGraphName, cosc + "terms/resource#deleted", entry.Deleted.ToString().ToLower(), new Uri("http://www.w3.org/2001/XMLSchema#boolean"));
Console.WriteLine($"For project '{entry.DisplayName}' will migrate triple '{resourceGraphName} {cosc}terms/resource#deleted {entry.Deleted}'. ");
SparqlParameterizedString cmdString = new SparqlParameterizedString SparqlParameterizedString cmdString = new SparqlParameterizedString
{ {
CommandText = "SELECT DISTINCT ?g " + CommandText = "SELECT DISTINCT ?g " +
...@@ -139,6 +160,9 @@ namespace SQL2Linked.Implementations ...@@ -139,6 +160,9 @@ namespace SQL2Linked.Implementations
AssertToGraphBlankAndUriNode(graph, blankNode, acl + "accessTo", resourceGraphName); AssertToGraphBlankAndUriNode(graph, blankNode, acl + "accessTo", resourceGraphName);
Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{blankNode} {acl}accessTo {resourceGraphName}'. "); Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{blankNode} {acl}accessTo {resourceGraphName}'. ");
AssertToGraphBlankAndUriNode(graph, blankNode, acl + "default", resourceGraphName);
Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{blankNode} {acl}default {resourceGraphName}'. ");
AssertToGraphBlankAndUriNode(graph, blankNode, acl + "mode", acl + "Control"); AssertToGraphBlankAndUriNode(graph, blankNode, acl + "mode", acl + "Control");
Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{blankNode} {acl}accessTo {acl}Control'. "); Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{blankNode} {acl}accessTo {acl}Control'. ");
} }
......
...@@ -11,6 +11,12 @@ namespace SQL2Linked.Implementations ...@@ -11,6 +11,12 @@ namespace SQL2Linked.Implementations
public readonly Uri rdf = new("http://www.w3.org/1999/02/22-rdf-syntax-ns#"); public readonly Uri rdf = new("http://www.w3.org/1999/02/22-rdf-syntax-ns#");
public readonly Uri foaf = new("http://xmlns.com/foaf/0.1/"); public readonly Uri foaf = new("http://xmlns.com/foaf/0.1/");
// Override to only transform users which have accepted the TOS
public override IEnumerable<User> GetAll()
{
return Model.GetAllWhere((user) => user.Tosaccepteds.Any());
}
public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<User> entries) public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<User> entries)
{ {
var graphs = new List<IGraph>(); var graphs = new List<IGraph>();
......
...@@ -25,11 +25,16 @@ namespace SQL2Linked ...@@ -25,11 +25,16 @@ namespace SQL2Linked
public abstract IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<S> entries); public abstract IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<S> entries);
public virtual IEnumerable<S> GetAll()
{
return Model.GetAll();
}
public void Migrate(bool dummyMode) public void Migrate(bool dummyMode)
{ {
var spacer = new string('-', 35); var spacer = new string('-', 35);
Console.WriteLine($"\n{spacer}\n{typeof(T).Name}\n{spacer}"); Console.WriteLine($"\n{spacer}\n{typeof(T).Name}\n{spacer}");
var graphs = ConvertToLinkedData(Model.GetAll()); var graphs = ConvertToLinkedData(GetAll());
if (!dummyMode) if (!dummyMode)
{ {
StoreGraphs(graphs); StoreGraphs(graphs);
...@@ -56,6 +61,7 @@ namespace SQL2Linked ...@@ -56,6 +61,7 @@ namespace SQL2Linked
Console.WriteLine(); Console.WriteLine();
} }
} }
public void AssertToGraphUriNode(IGraph graph, string graphSubject, string graphPredicate, string graphObject) public void AssertToGraphUriNode(IGraph graph, string graphSubject, string graphPredicate, string graphObject)
{ {
graph.Assert( graph.Assert(
...@@ -66,6 +72,7 @@ namespace SQL2Linked ...@@ -66,6 +72,7 @@ namespace SQL2Linked
) )
); );
} }
public void AssertToGraphLiteralNode(IGraph graph, string graphSubject, string graphPredicate, string graphObject, Uri? objectType = null) public void AssertToGraphLiteralNode(IGraph graph, string graphSubject, string graphPredicate, string graphObject, Uri? objectType = null)
{ {
graph.Assert( graph.Assert(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment