diff --git a/src/components/BackLinkViewer.vue b/src/components/BackLinkViewer.vue new file mode 100644 index 0000000..8257b6c --- /dev/null +++ b/src/components/BackLinkViewer.vue @@ -0,0 +1,48 @@ + + + \ No newline at end of file diff --git a/src/components/NodeShapeViewer.vue b/src/components/NodeShapeViewer.vue index a227caa..d5ec991 100644 --- a/src/components/NodeShapeViewer.vue +++ b/src/components/NodeShapeViewer.vue @@ -75,46 +75,12 @@ - Persistent Identifier:  {{ record.title}}
+ + + Persistent Identifier:  {{ record.title}}
- - - - - {{ - nameOrCURIE( - propertyShapes[k], - shapesDS.data.prefixes, - true - ) - }} - : - - - {{ k }}: - - - -
 -
-   -
-
-
- -
- - - - - - - - - + + {{ @@ -124,92 +90,136 @@ true ) }} - :   - - -
 - 
- - + : +
+ + {{ k }}: + + + +
 -
+   +
+
+
+ +
+ + + + + + + + + + + + {{ + nameOrCURIE( + propertyShapes[k], + shapesDS.data.prefixes, + true + ) + }} + :   + + +
 - 
+ + +
+
+
+ + {{ k }}: + + +
 -
+  {{ el.value }} +
+
+
+
+
+
+
+ + + + + {{ + nameOrCURIE( + propertyShapes[k], + shapesDS.data.prefixes, + true + ) + }} + :   + + + +  -  + + + + + + + +  -  - - {{ k }}: - - -
 -
-  {{ el.value }} -
-
-
-
-
-
- - - - - {{ - nameOrCURIE( - propertyShapes[k], - shapesDS.data.prefixes, - true - ) - }} - :   - - - -  -  - - - - - - - -  -  - - - - +
+ + + + + + +
-
+
{ fetchingRecords.value = true; await updateRecord(true); fetchingRecords.value = false; + firstUpdateDone.value = true; let recordPIDprefix = toCURIE(props.quad.subject.value, allPrefixes, 'parts').prefix; if (configVarsMain['idResolvesExternally'].indexOf(recordPIDprefix) >= 0) { resolveExternally.value = true; diff --git a/src/composables/configuration.js b/src/composables/configuration.js index 66a1a13..32ec641 100644 --- a/src/composables/configuration.js +++ b/src/composables/configuration.js @@ -52,6 +52,7 @@ const mainVarsToLoad = { NodeShapeViewer: { recordNumberStepSize: 5, textTruncateWidth: "85%", + hideBackLinks: true, }, URIEditor: { default: "curie", diff --git a/src/modules/utils.js b/src/modules/utils.js index 74c85b0..a82b0e9 100644 --- a/src/modules/utils.js +++ b/src/modules/utils.js @@ -302,6 +302,56 @@ export function getSubjectQuad(subj, graph) { } } +export function getReferencingRecords(objVal, graph) { + let referencingRecords = {}; + const firstLevelQuads = graph.getQuads( + null, + null, + namedNode(objVal), + null + ); + for (const q of firstLevelQuads) { + if (q.subject.termType === 'BlankNode') { + var secondLevelQuads = graph.getQuads( + null, + null, + q.subject, + null + ); + if (secondLevelQuads && secondLevelQuads.length) { + if (!referencingRecords.hasOwnProperty(secondLevelQuads[0].predicate.value)) { + referencingRecords[secondLevelQuads[0].predicate.value] = [] + } + referencingRecords[secondLevelQuads[0].predicate.value].push({ + record_id: secondLevelQuads[0].subject.value + }) + var sQ = getSubjectQuad(secondLevelQuads[0].subject, graph) + if (sQ) { + referencingRecords[secondLevelQuads[0].predicate.value].at(-1).class_iri = sQ.object.value + referencingRecords[secondLevelQuads[0].predicate.value].at(-1).quad = sQ + } + if (secondLevelQuads.length > 1) { + console.error("! secondLevelQuads has length > 1 !") + } + } + } else { + if (!referencingRecords.hasOwnProperty(q.predicate.value)) { + referencingRecords[q.predicate.value] = [] + } + referencingRecords[q.predicate.value].push({ + record_id: q.subject.value + }) + var sQ = getSubjectQuad(q.subject, graph) + if (sQ) { + referencingRecords[q.predicate.value].at(-1).class_iri = sQ.object.value + referencingRecords[q.predicate.value].at(-1).quad = sQ + } + + } + } + return referencingRecords +} + export function objectsEqual(obj1, obj2) { if (Object.keys(obj1).length !== Object.keys(obj2).length) { return false;