Skip to content
Snippets Groups Projects
Commit 3701630a authored by Marcel Nellesen's avatar Marcel Nellesen
Browse files

Merge branch 'Sprint/2020-11' into 'master'

Sprint/2020 11

See merge request coscine/cs/Metadata!18
parents c73d3614 2ba82c85
No related branches found
No related tags found
1 merge request!18Sprint/2020 11
......@@ -43,8 +43,8 @@
<Reference Include="Coscine.Configuration, Version=1.5.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Configuration.1.5.0\lib\net461\Coscine.Configuration.dll</HintPath>
</Reference>
<Reference Include="Coscine.Database, Version=1.19.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Database.1.19.0\lib\net461\Coscine.Database.dll</HintPath>
<Reference Include="Coscine.Database, Version=1.22.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Database.1.22.0\lib\net461\Coscine.Database.dll</HintPath>
</Reference>
<Reference Include="dotNetRDF, Version=2.5.0.0, Culture=neutral, PublicKeyToken=6055ffe4c97cc780, processorArchitecture=MSIL">
<HintPath>..\packages\dotNetRDF.2.5.0\lib\net40\dotNetRDF.dll</HintPath>
......
......@@ -9,8 +9,8 @@ using System.Reflection;
[assembly: AssemblyDescription("Metadata.Tests is a part of the CoScInE group.")]
[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
[assembly: AssemblyProduct("Metadata.Tests")]
[assembly: AssemblyVersion("1.1.0")]
[assembly: AssemblyFileVersion("1.1.0")]
[assembly: AssemblyInformationalVersion("1.1.0")]
[assembly: AssemblyVersion("1.2.0")]
[assembly: AssemblyFileVersion("1.2.0")]
[assembly: AssemblyInformationalVersion("1.2.0-sprint-2020-11-0007")]
[assembly: AssemblyCopyright("2020 IT Center, RWTH Aachen University")]
......@@ -2,7 +2,7 @@
<packages>
<package id="Consul" version="0.7.2.6" targetFramework="net461" />
<package id="Coscine.Configuration" version="1.5.0" targetFramework="net461" />
<package id="Coscine.Database" version="1.19.0" targetFramework="net461" />
<package id="Coscine.Database" version="1.22.0" targetFramework="net461" />
<package id="dotNetRDF" version="2.5.0" targetFramework="net461" />
<package id="dotNetRDF.Data.Virtuoso" version="2.5.0" targetFramework="net461" />
<package id="EntityFramework" version="6.2.0" targetFramework="net461" />
......
......@@ -9,8 +9,8 @@ using System.Reflection;
[assembly: AssemblyDescription("Metadata.cmd is a part of the CoScInE group.")]
[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
[assembly: AssemblyProduct("Metadata.cmd")]
[assembly: AssemblyVersion("1.1.0")]
[assembly: AssemblyFileVersion("1.1.0")]
[assembly: AssemblyInformationalVersion("1.1.0")]
[assembly: AssemblyVersion("1.2.0")]
[assembly: AssemblyFileVersion("1.2.0")]
[assembly: AssemblyInformationalVersion("1.2.0-sprint-2020-11-0007")]
[assembly: AssemblyCopyright("2020 IT Center, RWTH Aachen University")]
......@@ -41,8 +41,8 @@
<Reference Include="Coscine.Configuration, Version=1.5.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Configuration.1.5.0\lib\net461\Coscine.Configuration.dll</HintPath>
</Reference>
<Reference Include="Coscine.Database, Version=1.19.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Database.1.19.0\lib\net461\Coscine.Database.dll</HintPath>
<Reference Include="Coscine.Database, Version=1.22.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
<HintPath>..\packages\Coscine.Database.1.22.0\lib\net461\Coscine.Database.dll</HintPath>
</Reference>
<Reference Include="dotNetRDF, Version=2.5.0.0, Culture=neutral, PublicKeyToken=6055ffe4c97cc780, processorArchitecture=MSIL">
<HintPath>..\packages\dotNetRDF.2.5.0\lib\net40\dotNetRDF.dll</HintPath>
......
......@@ -9,8 +9,8 @@ using System.Reflection;
[assembly: AssemblyDescription("Metadata is a part of the CoScInE group.")]
[assembly: AssemblyCompany("IT Center, RWTH Aachen University")]
[assembly: AssemblyProduct("Metadata")]
[assembly: AssemblyVersion("1.1.0")]
[assembly: AssemblyFileVersion("1.1.0")]
[assembly: AssemblyInformationalVersion("1.1.0")]
[assembly: AssemblyVersion("1.2.0")]
[assembly: AssemblyFileVersion("1.2.0")]
[assembly: AssemblyInformationalVersion("1.2.0-sprint-2020-11-0007")]
[assembly: AssemblyCopyright("2020 IT Center, RWTH Aachen University")]
......@@ -192,6 +192,11 @@ namespace Coscine.Metadata
return graph.GetTriplesWithPredicate(new Uri("http://www.w3.org/ns/shacl#class")).Where(x => x.Object.NodeType == NodeType.Uri).Select(x => new Uri(x.Object.ToString())).Distinct();
}
public IEnumerable<Uri> GetClasses(IGraph graph)
{
return graph.GetTriplesWithPredicate(new Uri("http://www.w3.org/ns/shacl#class")).Where(x => x.Object.NodeType == NodeType.Uri).Select(x => new Uri(x.Object.ToString())).Distinct();
}
public bool ValidateShacl(IGraph graph, Uri graphName)
{
// Create a copy of the input graph
......@@ -203,10 +208,10 @@ namespace Coscine.Metadata
var shapesGraph = GetGraph(GetApplicationProfileUri(dataGraph, graphName));
foreach (var vocabulary in GetVocabularies(shapesGraph))
foreach (var classElement in GetClasses(shapesGraph))
{
var vocabularyGraph = GetGraph(vocabulary);
dataGraph.Merge(vocabularyGraph);
var classGraph = GetClassGraph(classElement);
dataGraph.Merge(classGraph);
}
var processor = new ShapesGraph(shapesGraph);
......@@ -215,6 +220,19 @@ namespace Coscine.Metadata
return conforms;
}
public IGraph GetClassGraph(Uri classElement)
{
// construct graph with all instances of classElement
SparqlParameterizedString cmdString = new SparqlParameterizedString
{
CommandText = "CONSTRUCT { ?s a @classElement . ?s ?p ?o } WHERE { ?s a ?class . ?class <http://www.w3.org/2000/01/rdf-schema#subClassOf>* @classElement . ?s ?p ?o }"
};
cmdString.SetUri("classElement", classElement);
var resultGraph = QueryEndpoint.QueryWithResultGraph(cmdString.ToString());
return resultGraph;
}
private void AdaptDataGraph(Graph graph, Uri graphName)
{
var triple = GetDefinitionTriple(graph, graphName);
......
......@@ -2,7 +2,7 @@
<packages>
<package id="Consul" version="0.7.2.6" targetFramework="net461" />
<package id="Coscine.Configuration" version="1.5.0" targetFramework="net461" />
<package id="Coscine.Database" version="1.19.0" targetFramework="net461" />
<package id="Coscine.Database" version="1.22.0" targetFramework="net461" />
<package id="dotNetRDF" version="2.5.0" targetFramework="net461" />
<package id="dotNetRDF.Data.Virtuoso" version="2.5.0" targetFramework="net461" />
<package id="EntityFramework" version="6.2.0" targetFramework="net461" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment