Informatievlaanderen / VSDS-LDESServer4J

Linked Data Event Streams Server for Java
https://informatievlaanderen.github.io/VSDS-LDESServer4J
European Union Public License 1.2
8 stars 8 forks source link

Ingest version object with other objects embedded #1259

Closed brechtvdv closed 2 months ago

brechtvdv commented 2 months ago

LDES server: 2.13.0-SNAPSHOT

Created collection:

@base <http://localhost:8080/> .
      @prefix ldes: <https://w3id.org/ldes#> .
      @prefix custom: <http://example.org/> .
      @prefix dcterms: <http://purl.org/dc/terms/> .
      @prefix tree: <https://w3id.org/tree#>.
      @prefix sh:   <http://www.w3.org/ns/shacl#> .
      @prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .

      </touristattractions> a ldes:EventStream ;
              ldes:timestampPath <http://www.w3.org/ns/prov#generatedAtTime> ;
              ldes:versionOfPath dcterms:isVersionOf ;
              tree:shape </touristattractions/shape> .

      </touristattractions/shape> a sh:NodeShape ;
              sh:closed false .

Input data (deleted most of the properties of real object):

nifi-less-approach_ldio-workbench      | @prefix concepts:    <https://westtoer.be/id/concepts/> .
nifi-less-approach_ldio-workbench      | @prefix core:        <http://www.w3.org/2004/02/skos/core#> .
nifi-less-approach_ldio-workbench      | @prefix dcmitype:    <http://purl.org/dc/dcmitype/> .
nifi-less-approach_ldio-workbench      | @prefix dcterms:     <http://purl.org/dc/terms/> .
nifi-less-approach_ldio-workbench      | @prefix generiek:    <https://data.vlaanderen.be/ns/generiek#> .
nifi-less-approach_ldio-workbench      | @prefix locn:        <http://www.w3.org/ns/locn#> .
nifi-less-approach_ldio-workbench      | @prefix log:         <http://www.w3.org/2000/10/swap/log#> .
nifi-less-approach_ldio-workbench      | @prefix logies:      <https://data.vlaanderen.be/ns/logies#> .
nifi-less-approach_ldio-workbench      | @prefix mediaobject: <https://westtoer.be/id/mediaobject/> .
nifi-less-approach_ldio-workbench      | @prefix org:         <http://www.w3.org/ns/org#> .
nifi-less-approach_ldio-workbench      | @prefix organisatie: <http://data.vlaanderen.be/id/organisatie/> .
nifi-less-approach_ldio-workbench      | @prefix product:     <https://westtoer.be/id/product/> .
nifi-less-approach_ldio-workbench      | @prefix prov:        <http://www.w3.org/ns/prov#> .
nifi-less-approach_ldio-workbench      | @prefix rdf:         <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
nifi-less-approach_ldio-workbench      | @prefix rdfs:        <http://www.w3.org/2000/01/rdf-schema#> .
nifi-less-approach_ldio-workbench      | @prefix schema:      <https://schema.org/> .
nifi-less-approach_ldio-workbench      | @prefix terms:       <http://purl.org/dc/terms/> .
nifi-less-approach_ldio-workbench      | @prefix westtoerns:  <https://westtoer.be/ns#> .
nifi-less-approach_ldio-workbench      | @prefix wgs84_pos:   <http://www.w3.org/2003/01/geo/wgs84_pos#> .
nifi-less-approach_ldio-workbench      | @prefix xsd:         <http://www.w3.org/2001/XMLSchema#> .
nifi-less-approach_ldio-workbench      | 
nifi-less-approach_ldio-workbench      | mediaobject:dd207881-dcba-4694-96d1-9fa2ae1acf92
nifi-less-approach_ldio-workbench      |         rdf:type                      logies:MediaObject;
nifi-less-approach_ldio-workbench      |         generiek:lokaleIdentificator  "dd207881-dcba-4694-96d1-9fa2ae1acf92"^^rdfs:string;
nifi-less-approach_ldio-workbench      | mediaobject:a2d5131d-c92e-4dfc-917e-1c0f7804ef92
nifi-less-approach_ldio-workbench      |         rdf:type                      logies:MediaObject;
nifi-less-approach_ldio-workbench      |         generiek:lokaleIdentificator  "a2d5131d-c92e-4dfc-917e-1c0f7804ef92"^^rdfs:string;
nifi-less-approach_ldio-workbench      | 
nifi-less-approach_ldio-workbench      | <https://westtoer.be/id/product/bdfacabe-5c8c-48ef-a827-c284d3e1dc8d/2024-04-11T12:06:14.3869544Z>
nifi-less-approach_ldio-workbench      |         rdf:type                      schema:TouristAttraction;
nifi-less-approach_ldio-workbench      |         dcterms:isVersionOf           product:bdfacabe-5c8c-48ef-a827-c284d3e1dc8d;
nifi-less-approach_ldio-workbench      |         prov:generatedAtTime          "2024-04-11T12:06:14.3869544Z"^^xsd:dateTime;
nifi-less-approach_ldio-workbench      |         generiek:lokaleIdentificator  "bdfacabe-5c8c-48ef-a827-c284d3e1dc8d"^^rdfs:string;
nifi-less-approach_ldio-workbench      |         logies:heeftMedia             mediaobject:a2d5131d-c92e-4dfc-917e-1c0f7804ef92 , mediaobject:dd207881-dcba-4694-96d1-9fa2ae1acf92;

Returned error:

ldes.server                            | 2024-04-11T12:06:33.363Z ERROR 1 --- [nio-8080-exec-9] b.v.i.l.s.logging.SimpleLoggingHandler   : ERROR - source='MemberIngestController', when='ingestLdesMember', problem='Shacl validation failed: 
ldes.server                            | 
ldes.server                            | @prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
ldes.server                            | @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
ldes.server                            | @prefix sh:   <http://www.w3.org/ns/shacl#> .
ldes.server                            | @prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
ldes.server                            | 
ldes.server                            | [ rdf:type     sh:ValidationReport;
ldes.server                            |   sh:conforms  false;
ldes.server                            |   sh:result    [ rdf:type                      sh:ValidationResult;
ldes.server                            |                  sh:focusNode                  <https://westtoer.be/id/mediaobject/a2d5131d-c92e-4dfc-917e-1c0f7804ef92>;
ldes.server                            |                  sh:resultMessage              "Member must have exactly 1 statement with versionOf path: http://purl.org/dc/terms/isVersionOf as predicate.";
ldes.server                            |                  sh:resultSeverity             sh:Violation;
ldes.server                            |                  sh:sourceConstraintComponent  sh:SPARQLConstraintComponent
ldes.server                            |                ];
ldes.server                            |   sh:result    [ rdf:type                      sh:ValidationResult;
ldes.server                            |                  sh:focusNode                  <https://westtoer.be/id/mediaobject/dd207881-dcba-4694-96d1-9fa2ae1acf92>;
ldes.server                            |                  sh:resultMessage              "Member must have exactly 1 statement with versionOf path: http://purl.org/dc/terms/isVersionOf as predicate.";
ldes.server                            |                  sh:resultSeverity             sh:Violation;
ldes.server                            |                  sh:sourceConstraintComponent  sh:SPARQLConstraintComponent
ldes.server                            |                ];
ldes.server                            |   sh:result    [ rdf:type                      sh:ValidationResult;
ldes.server                            |                  sh:focusNode                  <https://westtoer.be/id/mediaobject/a2d5131d-c92e-4dfc-917e-1c0f7804ef92>;
ldes.server                            |                  sh:resultMessage              "Member must have exactly 1 statement with timestamp path: http://www.w3.org/ns/prov#generatedAtTime as predicate.";
ldes.server                            |                  sh:resultSeverity             sh:Violation;
ldes.server                            |                  sh:sourceConstraintComponent  sh:SPARQLConstraintComponent
ldes.server                            |                ];
ldes.server                            |   sh:result    [ rdf:type                      sh:ValidationResult;
ldes.server                            |                  sh:focusNode                  <https://westtoer.be/id/mediaobject/dd207881-dcba-4694-96d1-9fa2ae1acf92>;
ldes.server                            |                  sh:resultMessage              "Member must have exactly 1 statement with timestamp path: http://www.w3.org/ns/prov#generatedAtTime as predicate.";
ldes.server                            |                  sh:resultSeverity             sh:Violation;
ldes.server                            |                  sh:sourceConstraintComponent  sh:SPARQLConstraintComponent
ldes.server                            |                ];
ldes.server                            |   sh:result    [ rdf:type                      sh:ValidationResult;
ldes.server                            |                  sh:focusNode                  <https://westtoer.be/id/mediaobject/a2d5131d-c92e-4dfc-917e-1c0f7804ef92>;
ldes.server                            |                  sh:resultMessage              "Only 1 member is allowed per request on collection with version creation disabled";
ldes.server                            |                  sh:resultSeverity             sh:Violation;
ldes.server                            |                  sh:sourceConstraintComponent  sh:SPARQLConstraintComponent
ldes.server                            |                ];
ldes.server                            |   sh:result    [ rdf:type                      sh:ValidationResult;
ldes.server                            |                  sh:focusNode                  <https://westtoer.be/id/mediaobject/dd207881-dcba-4694-96d1-9fa2ae1acf92>;
ldes.server                            |                  sh:resultMessage              "Only 1 member is allowed per request on collection with version creation disabled";
ldes.server                            |                  sh:resultSeverity             sh:Violation;
ldes.server                            |                  sh:sourceConstraintComponent  sh:SPARQLConstraintComponent
ldes.server                            |                ];
ldes.server                            |   sh:result    [ rdf:type                      sh:ValidationResult;
ldes.server                            |                  sh:focusNode                  <https://westtoer.be/id/product/bdfacabe-5c8c-48ef-a827-c284d3e1dc8d/2024-04-11T12:06:14.3869544Z>;
ldes.server                            |                  sh:resultMessage              "Only 1 member is allowed per request on collection with version creation disabled";
ldes.server                            |                  sh:resultSeverity             sh:Violation;
ldes.server                            |                  sh:sourceConstraintComponent  sh:SPARQLConstraintComponent
ldes.server                            |                ]
ldes.server                            | ] .
ldes.server                            | '
ldes.server                            | 
Yalz commented 2 months ago

To be picked up as part of #1267