Skip to content
Snippets Groups Projects
Commit 58be5a6e authored by esikkala's avatar esikkala
Browse files

Remove unused components

parent 234dffd5
No related branches found
No related tags found
No related merge requests found
import React from 'react'
import PropTypes from 'prop-types'
import { withStyles } from '@material-ui/core/styles'
import Paper from '@material-ui/core/Paper'
import Typography from '@material-ui/core/Typography'
import CircularProgress from '@material-ui/core/CircularProgress'
import purple from '@material-ui/core/colors/purple'
import PerspectiveTabs from './PerspectiveTabs'
import InstanceHomePageTable from './InstanceHomePageTable'
import LeafletMap from '../facet_results/LeafletMap'
import Export from '../facet_results/Export'
import { Route, Redirect } from 'react-router-dom'
import { has } from 'lodash'
const styles = () => ({
root: {
width: '100%',
height: '100%'
},
content: {
width: '100%',
height: 'calc(100% - 72px)',
overflow: 'auto'
},
spinnerContainer: {
display: 'flex',
width: '100%',
height: '100%',
alignItems: 'center',
justifyContent: 'center'
}
})
/**
* A component for generating a landing page for a single entity.
*/
class InstanceHomePage extends React.Component {
constructor (props) {
super(props)
this.state = {
localID: null
}
}
componentDidMount = () => this.fetchData()
componentDidUpdate = prevProps => {
if (prevProps.routeProps.location !== this.props.routeProps.location) {
this.fetchData()
}
}
fetchData = () => {
let uri = ''
const base = 'http://ldf.fi/mmm'
const locationArr = this.props.routeProps.location.pathname.split('/')
let localID = locationArr.pop()
this.props.tabs.map(tab => {
if (localID === tab.id) {
localID = locationArr.pop() // pop again if tab id
}
})
this.setState({ localID: localID })
switch (this.props.resultClass) {
case 'perspective1':
uri = `${base}/manifestation_singleton/${localID}`
break
case 'perspective2':
uri = `${base}/work/${localID}`
break
case 'perspective3':
uri = `${base}/event/${localID}`
break
case 'manuscripts':
uri = `${base}/manifestation_singleton/${localID}`
break
case 'expressions':
uri = `${base}/expression/${localID}`
break
case 'collections':
uri = `${base}/collection/${localID}`
break
case 'works':
uri = `${base}/work/${localID}`
break
case 'events':
uri = `${base}/event/${localID}`
break
case 'actors':
uri = `${base}/actor/${localID}`
break
case 'places':
uri = `${base}/place/${localID}`
break
}
this.props.fetchByURI({
resultClass: this.props.resultClass,
facetClass: null,
variant: null,
uri: uri
})
}
createPlaceArray = events => {
let places = {}
events = Array.isArray(events) ? events : [events]
events.map(event => {
if (has(event, 'place')) {
const eventPlaces = Array.isArray(event.place) ? event.place : [event.place]
eventPlaces.map(place => {
if (!has(places, place.id)) {
places[place.id] = {
id: place.id,
prefLabel: place.prefLabel,
lat: place.lat,
long: place.long,
events: [event] // gather events here
}
} else {
places[place.id].events.push(event)
}
})
}
})
places = Object.values(places)
places.forEach(place => {
place.instanceCount = place.events.length
})
return places
}
getVisibleRows = rows => {
const visibleRows = []
const instanceClass = this.props.data.type ? this.props.data.type.id : ''
rows.map(row => {
if ((has(row, 'onlyForClass') && row.onlyForClass === instanceClass) ||
!has(row, 'onlyForClass')) {
visibleRows.push(row)
}
})
return visibleRows
}
render = () => {
const { classes, data, isLoading, resultClass, rootUrl } = this.props
const hasData = data !== null && Object.values(data).length >= 1
return (
<div className={classes.root}>
<PerspectiveTabs
routeProps={this.props.routeProps}
tabs={this.props.tabs}
screenSize={this.props.screenSize}
/>
<Paper square className={classes.content}>
{isLoading &&
<div className={classes.spinnerContainer}>
<CircularProgress style={{ color: purple[500] }} thickness={5} />
</div>}
{!hasData &&
<>
<Typography variant='h6'>
No data found for id: <span style={{ fontStyle: 'italic' }}>{this.state.localID}</span>
</Typography>
</>}
{hasData &&
<>
<Route
exact path={`${rootUrl}/${resultClass}/page/${this.state.localID}`}
render={() => <Redirect to={`${rootUrl}/${resultClass}/page/${this.state.localID}/table`} />}
/>
<Route
path={[`${rootUrl}/${resultClass}/page/${this.state.localID}/table`, '/iframe.html']} // support also rendering in Storybook
render={() =>
<InstanceHomePageTable
resultClass={resultClass}
data={data}
properties={this.getVisibleRows(this.props.properties)}
/>}
/>
<Route
path={`${rootUrl}/${resultClass}/page/${this.state.localID}/map`}
render={() =>
<LeafletMap
results={this.createPlaceArray(data.event)}
resultClass='instanceEvents'
pageType='instancePage'
mapMode='cluster'
instance={null}
fetchByURI={this.props.fetchByURI}
fetching={this.props.isLoading}
showInstanceCountInClusters
/>}
/>
<Route
path={`${rootUrl}/${resultClass}/page/${this.state.localID}/export`}
render={() =>
<Export
sparqlQuery={this.props.sparqlQuery}
pageType='instancePage'
id={data.id}
/>}
/>
</>}
</Paper>
</div>
)
}
}
InstanceHomePage.propTypes = {
classes: PropTypes.object.isRequired,
fetchByURI: PropTypes.func.isRequired,
resultClass: PropTypes.string.isRequired,
data: PropTypes.object,
sparqlQuery: PropTypes.string,
properties: PropTypes.array.isRequired,
tabs: PropTypes.array.isRequired,
isLoading: PropTypes.bool.isRequired,
routeProps: PropTypes.object.isRequired,
screenSize: PropTypes.string.isRequired,
rootUrl: PropTypes.string.isRequired
}
export const InstanceHomePageComponent = InstanceHomePage
export default withStyles(styles)(InstanceHomePage)
import React from 'react'
import { useSelector } from 'react-redux'
import { useLocation } from 'react-router-dom'
import InstanceHomePage, { InstanceHomePageComponent } from './InstanceHomePage'
import { perspectiveConfig } from '../../configs/sampo/PerspectiveConfig'
import { data, sparqlQuery } from './InstanceHomePage.testData.js'
export default {
component: InstanceHomePageComponent,
title: 'Sampo-UI/main_layout/InstanceHomePage'
}
export const basic = () => {
const perspective = perspectiveConfig[0]
const facetResults = useSelector(state => state.perspective1)
const location = useLocation()
const routeProps = { location }
return (
<InstanceHomePage
rootUrl=''
fetchByURI={() => null}
resultClass={perspective.id}
properties={facetResults.properties}
tabs={perspective.instancePageTabs}
data={data}
sparqlQuery={sparqlQuery}
isLoading={false}
routeProps={routeProps}
screenSize='md'
/>
)
}
export const data = {
id: 'http://ldf.fi/mmm/manifestation_singleton/bibale_10043',
prefLabel: {
id: 'Paris (F), Bibliothèque nationale de France, Manuscrits, lat. 07498',
prefLabel: 'Paris (F), Bibliothèque nationale de France, Manuscrits, lat. 07498'
},
uri: {
id: 'http://ldf.fi/mmm/manifestation_singleton/bibale_10043',
dataProviderUrl: 'http://ldf.fi/mmm/manifestation_singleton/bibale_10043',
prefLabel: 'http://ldf.fi/mmm/manifestation_singleton/bibale_10043'
},
source: [
{
id: 'http://bibale.irht.cnrs.fr/10043',
prefLabel: 'http://bibale.irht.cnrs.fr/10043',
dataProviderUrl: 'http://bibale.irht.cnrs.fr/10043'
},
{
id: 'https://sdbm.library.upenn.edu/entries/225680',
prefLabel: 'https://sdbm.library.upenn.edu/entries/225680',
dataProviderUrl: 'https://sdbm.library.upenn.edu/entries/225680'
}
],
author: [
{
id: 'http://ldf.fi/mmm/actor/bodley_person_105100637',
prefLabel: 'Priscian, grammarian, 5th-6th cent.',
dataProviderUrl: '/actors/page/bodley_person_105100637'
},
{
id: 'http://ldf.fi/mmm/actor/bibale_39635',
prefLabel: 'Benedictus Anianensis (0750?-0821)',
dataProviderUrl: '/actors/page/bibale_39635'
},
{
id: 'http://ldf.fi/mmm/actor/bodley_person_77679446',
prefLabel: 'Rufinus, of Aquileia, 345-410',
dataProviderUrl: '/actors/page/bodley_person_77679446'
},
{
id: 'http://ldf.fi/mmm/actor/sdbm_2146',
prefLabel: 'Flavianus, Remmius',
dataProviderUrl: '/actors/page/sdbm_2146'
}
],
work: [
{
id: 'http://ldf.fi/mmm/work/352737',
prefLabel: 'De arte grammatica libri decimus septimus et decimus octavus',
dataProviderUrl: '/works/page/352737'
},
{
id: 'http://ldf.fi/mmm/work/352738',
prefLabel: 'Tractatus de duodecim versibus, totidem et singulos Aencidos libros inchoantibus: nonnulla desiderantur',
dataProviderUrl: '/works/page/352738'
},
{
id: 'http://ldf.fi/mmm/work/352739',
prefLabel: 'Institutio de nomine, pronomine, verbo, participio, et verbalibus nominibus',
dataProviderUrl: '/works/page/352739'
},
{
id: 'http://ldf.fi/mmm/work/352740',
prefLabel: 'Libri duo de discernendis conjugationibus',
dataProviderUrl: '/works/page/352740'
},
{
id: 'http://ldf.fi/mmm/work/352741',
prefLabel: 'Commentarius in metra Terentiana',
dataProviderUrl: '/works/page/352741'
},
{
id: 'http://ldf.fi/mmm/work/352742',
prefLabel: 'Epistola metrica de ponderibus et mensuris',
dataProviderUrl: '/works/page/352742'
},
{
id: 'http://ldf.fi/mmm/work/352743',
prefLabel: 'Libellus de figuris numerorum',
dataProviderUrl: '/works/page/352743'
},
{
id: 'http://ldf.fi/mmm/work/352744',
prefLabel: 'Libellus de metris fabularum Terentii aliorumque Comicorum',
dataProviderUrl: '/works/page/352744'
},
{
id: 'http://ldf.fi/mmm/work/352745',
prefLabel: 'Praeexercitamina ex Hermogene translata',
dataProviderUrl: '/works/page/352745'
}
],
productionTimespan: [
{
id: 'http://ldf.fi/mmm/time/production_225680_0800---0901',
prefLabel: '0800 - 0901',
source: {
id: 'http://ldf.fi/schema/mmm/SDBM',
prefLabel: 'Schoenberg Database of Manuscripts',
dataProviderUrl: 'https://sdbm.library.upenn.edu/'
},
start: '0800-01-01',
end: '0901-12-31'
},
{
id: 'http://ldf.fi/mmm/time/bibale_element:465767',
prefLabel: '0801 - 0900',
source: {
id: 'http://ldf.fi/schema/mmm/Bibale',
prefLabel: 'Bibale Database',
dataProviderUrl: 'http://bibale.irht.cnrs.fr/'
},
start: '0801-01-01',
end: '0900-12-31'
},
{
id: 'http://ldf.fi/mmm/time/bibale_element_151795-40',
prefLabel: '0801 - 0900',
source: {
id: 'http://ldf.fi/schema/mmm/Bibale',
prefLabel: 'Bibale Database',
dataProviderUrl: 'http://bibale.irht.cnrs.fr/'
},
start: '0801-01-01',
end: '0900-12-31'
}
],
production: 'http://ldf.fi/mmm/event/bibale_production_10043',
productionPlace: {
id: 'http://ldf.fi/mmm/place/tgn_7008470',
prefLabel: 'Saint-Amand-les-Eaux',
source: {
id: 'http://ldf.fi/schema/mmm/Bibale',
prefLabel: 'Bibale Database',
dataProviderUrl: 'http://bibale.irht.cnrs.fr/'
},
dataProviderUrl: '/places/page/tgn_7008470'
},
note: [
'MIGRATION_ISSUE: Last known location for this Entry is Paris, BNF, MS Latin 7498, couldnt store this in the Manuscript record because there is none.',
'PARIS, Bibliothèque nationale de France, Manuscrits, lat. 07498'
],
expression: [
{
id: 'http://ldf.fi/mmm/expression/352737',
prefLabel: 'De arte grammatica libri decimus septimus et decimus octavus',
dataProviderUrl: '/expressions/page/352737'
},
{
id: 'http://ldf.fi/mmm/expression/352738',
prefLabel: 'Tractatus de duodecim versibus, totidem et singulos Aencidos libros inchoantibus: nonnulla desiderantur',
dataProviderUrl: '/expressions/page/352738'
},
{
id: 'http://ldf.fi/mmm/expression/352739',
prefLabel: 'Institutio de nomine, pronomine, verbo, participio, et verbalibus nominibus',
dataProviderUrl: '/expressions/page/352739'
},
{
id: 'http://ldf.fi/mmm/expression/352740',
prefLabel: 'Libri duo de discernendis conjugationibus',
dataProviderUrl: '/expressions/page/352740'
},
{
id: 'http://ldf.fi/mmm/expression/352741',
prefLabel: 'Commentarius in metra Terentiana',
dataProviderUrl: '/expressions/page/352741'
},
{
id: 'http://ldf.fi/mmm/expression/352742',
prefLabel: 'Epistola metrica de ponderibus et mensuris',
dataProviderUrl: '/expressions/page/352742'
},
{
id: 'http://ldf.fi/mmm/expression/352743',
prefLabel: 'Libellus de figuris numerorum',
dataProviderUrl: '/expressions/page/352743'
},
{
id: 'http://ldf.fi/mmm/expression/352744',
prefLabel: 'Libellus de metris fabularum Terentii aliorumque Comicorum',
dataProviderUrl: '/expressions/page/352744'
},
{
id: 'http://ldf.fi/mmm/expression/352745',
prefLabel: 'Praeexercitamina ex Hermogene translata',
dataProviderUrl: '/expressions/page/352745'
}
],
language: {
id: 'http://ldf.fi/mmm/language/sdbm_1',
source: {
id: 'http://ldf.fi/schema/mmm/SDBM',
prefLabel: 'Schoenberg Database of Manuscripts'
},
prefLabel: 'Latin'
},
event: [
{
id: 'http://ldf.fi/mmm/event/bibale_production_10043',
type: 'http://erlangen-crm.org/current/E12_Production',
date: '0801 - 0900',
place: {
id: 'http://ldf.fi/mmm/place/tgn_7008470',
prefLabel: {
id: 'Saint-Amand-les-Eaux',
prefLabel: 'Saint-Amand-les-Eaux',
dataProviderUrl: '/places/page/tgn_7008470'
},
lat: '50.447176',
long: '3.43076'
},
prefLabel: 'Production',
dataProviderUrl: '/events/page/bibale_production_10043'
},
{
id: 'http://ldf.fi/mmm/event/sdbm_production_orphan_225680',
type: 'http://erlangen-crm.org/current/E12_Production',
date: '0800 - 0901',
prefLabel: 'Production',
dataProviderUrl: '/events/page/sdbm_production_orphan_225680'
}
],
lastKnownLocation: {
id: 'http://ldf.fi/mmm/place/tgn_7008038',
prefLabel: 'Paris',
dataProviderUrl: '/places/page/tgn_7008038'
},
owner: [
{
id: 'http://ldf.fi/mmm/actor/bibale_1415',
prefLabel: 'Dupuy, Claude (1545-1594)',
dataProviderUrl: '/actors/page/bibale_1415'
},
{
id: 'http://ldf.fi/mmm/actor/bibale_191',
prefLabel: 'PARIS, Bibliothèque nationale de France, Manuscrits',
dataProviderUrl: '/actors/page/bibale_191'
}
],
collection: [
{
id: 'http://ldf.fi/mmm/collection/bibale_7744',
prefLabel: 'Collection de Claude Dupuy',
dataProviderUrl: '/collections/page/bibale_7744'
},
{
id: 'http://ldf.fi/mmm/collection/sdbm_34111',
prefLabel: 'Bibliotheque nationale de France, Archives et Manuscrits Online Catalogue',
dataProviderUrl: '/collections/page/sdbm_34111'
}
],
material: {
id: 'http://ldf.fi/mmm/material/parchment',
prefLabel: 'Parchment'
}
}
export const sparqlQuery = '\n PREFIX skos: <http://www.w3.org/2004/02/skos/core#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n PREFIX crm: <http://erlangen-crm.org/current/>\n PREFIX owl: <http://www.w3.org/2002/07/owl#>\n PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\n PREFIX text: <http://jena.apache.org/text#>\n PREFIX dct: <http://purl.org/dc/terms/>\n PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>\n PREFIX sch: <http://schema.org/>\n PREFIX geosparql: <http://www.opengis.net/ont/geosparql#>\n PREFIX frbroo: <http://erlangen-crm.org/efrbroo/>\n PREFIX mmm-schema: <http://ldf.fi/schema/mmm/>\n PREFIX gvp: <http://vocab.getty.edu/ontology#>\n PREFIX wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#>\n PREFIX spatial: <http://jena.apache.org/spatial#>\n PREFIX text: <http://jena.apache.org/text#>\n\n SELECT * {\n BIND(<http://ldf.fi/mmm/manifestation_singleton/bibale_10043> as ?id)\n {\n ?id skos:prefLabel ?prefLabel__id .\n BIND (?prefLabel__id as ?prefLabel__prefLabel)\n BIND(?id as ?uri__id)\n BIND(?id as ?uri__dataProviderUrl)\n BIND(?id as ?uri__prefLabel)\n }\n UNION\n {\n ?id mmm-schema:data_provider_url ?source__id .\n BIND (?source__id AS ?source__prefLabel)\n BIND (?source__id AS ?source__dataProviderUrl)\n }\n UNION\n {\n ?id mmm-schema:manuscript_author ?author__id .\n ?author__id skos:prefLabel ?author__prefLabel .\n BIND(CONCAT("/actors/page/", REPLACE(STR(?author__id), "^.*\\\\/(.+)", "$1")) AS ?author__dataProviderUrl)\n }\n UNION\n {\n ?id mmm-schema:manuscript_work ?work__id .\n ?work__id skos:prefLabel ?work__prefLabel .\n BIND(CONCAT("/works/page/", REPLACE(STR(?work__id), "^.*\\\\/(.+)", "$1")) AS ?work__dataProviderUrl)\n }\n UNION\n {\n ?id ^crm:P108_has_produced/crm:P4_has_time-span ?productionTimespan__id .\n ?productionTimespan__id skos:prefLabel ?productionTimespan__prefLabel .\n ?productionTimespan__id dct:source ?productionTimespan__source__id .\n ?productionTimespan__source__id skos:prefLabel ?productionTimespan__source__prefLabel .\n ?productionTimespan__source__id mmm-schema:data_provider_url ?productionTimespan__source__dataProviderUrl .\n OPTIONAL { ?productionTimespan__id crm:P82a_begin_of_the_begin ?productionTimespan__start }\n OPTIONAL { ?productionTimespan__id crm:P82b_end_of_the_end ?productionTimespan__end }\n }\n UNION\n {\n ?id ^crm:P108_has_produced ?production .\n ?production crm:P7_took_place_at ?productionPlace__id .\n ?productionPlace__id skos:prefLabel ?productionPlace__prefLabel .\n ?production dct:source ?productionPlace__source__id .\n ?productionPlace__source__id skos:prefLabel ?productionPlace__source__prefLabel .\n ?productionPlace__source__id mmm-schema:data_provider_url ?productionPlace__source__dataProviderUrl .\n BIND(CONCAT("/places/page/", REPLACE(STR(?productionPlace__id), "^.*\\\\/(.+)", "$1")) AS ?productionPlace__dataProviderUrl)\n }\n UNION\n {\n ?id crm:P3_has_note ?note .\n }\n UNION\n {\n ?id crm:P128_carries ?expression__id .\n ?expression__id skos:prefLabel ?expression__prefLabel .\n OPTIONAL {\n ?expression__id crm:P72_has_language ?language__id .\n ?expression__id dct:source ?language__source__id .\n ?language__source__id skos:prefLabel ?language__source__prefLabel .\n ?language__id skos:prefLabel ?language__prefLabel .\n }\n BIND(CONCAT("/expressions/page/", REPLACE(STR(?expression__id), "^.*\\\\/(.+)", "$1")) AS ?expression__dataProviderUrl)\n }\n UNION\n {\n ?event__id crm:P108_has_produced ?id .\n ?event__id a ?event__type .\n OPTIONAL { ?event__id crm:P4_has_time-span/skos:prefLabel ?event__date }\n OPTIONAL {\n ?event__id crm:P7_took_place_at ?event__place__id .\n ?event__place__id skos:prefLabel ?event__place__prefLabel__id .\n BIND(?event__place__prefLabel__id as ?event__place__prefLabel__prefLabel)\n BIND(CONCAT("/places/page/", REPLACE(STR(?event__place__id), "^.*\\\\/(.+)", "$1")) AS ?event__place__prefLabel__dataProviderUrl)\n ?event__place__id wgs84:lat ?event__place__lat ;\n wgs84:long ?event__place__long .\n }\n BIND("Production" AS ?event__prefLabel)\n BIND(CONCAT("/events/page/", REPLACE(STR(?event__id), "^.*\\\\/(.+)", "$1")) AS ?event__dataProviderUrl)\n }\n UNION\n {\n ?id mmm-schema:last_known_location ?lastKnownLocation__id .\n ?lastKnownLocation__id skos:prefLabel ?lastKnownLocation__prefLabel .\n BIND(CONCAT("/places/page/", REPLACE(STR(?lastKnownLocation__id), "^.*\\\\/(.+)", "$1")) AS ?lastKnownLocation__dataProviderUrl)\n }\n UNION\n {\n ?event__id crm:P30_transferred_custody_of ?id .\n ?event__id a ?event__type .\n OPTIONAL { ?event__id crm:P4_has_time-span/skos:prefLabel ?event__date }\n OPTIONAL {\n ?event__id crm:P7_took_place_at ?event__place__id .\n ?event__place__id skos:prefLabel ?event__place__prefLabel__id .\n BIND(?event__place__prefLabel__id as ?event__place__prefLabel__prefLabel)\n BIND(CONCAT("/places/page/", REPLACE(STR(?event__place__id), "^.*\\\\/(.+)", "$1")) AS ?event__place__prefLabel__dataProviderUrl)\n ?event__place__id wgs84:lat ?event__place__lat ;\n wgs84:long ?event__place__long .\n }\n OPTIONAL {\n ?event__id crm:P28_custody_surrendered_by ?event__from__id .\n ?event__from__id skos:prefLabel ?event__from__prefLabel .\n BIND(CONCAT("/actors/page/", REPLACE(STR(?event__from__id), "^.*\\\\/(.+)", "$1")) AS ?event__from__dataProviderUrl)\n }\n OPTIONAL {\n ?event__id crm:P29_custody_received_by ?event__to__id .\n ?event__to__id skos:prefLabel ?event__to__prefLabel .\n BIND(CONCAT("/actors/page/", REPLACE(STR(?event__to__id), "^.*\\\\/(.+)", "$1")) AS ?event__to__dataProviderUrl)\n }\n BIND("Transfer of Custody" AS ?event__prefLabel)\n BIND(CONCAT("/events/page/", REPLACE(STR(?event__id), "^.*\\\\/(.+)", "$1")) AS ?event__dataProviderUrl)\n }\n UNION\n {\n ?event__id mmm-schema:observed_manuscript ?id .\n ?event__id a crm:E7_Activity .\n ?event__id a ?event__type .\n OPTIONAL { ?event__id crm:P4_has_time-span/skos:prefLabel ?event__date }\n OPTIONAL {\n ?event__id crm:P7_took_place_at ?event__place__id .\n ?event__place__id skos:prefLabel ?event__place__prefLabel__id .\n BIND(?event__place__prefLabel__id as ?event__place__prefLabel__prefLabel)\n BIND(CONCAT("/places/page/", REPLACE(STR(?event__place__id), "^.*\\\\/(.+)", "$1")) AS ?event__place__prefLabel__dataProviderUrl)\n ?event__place__id wgs84:lat ?event__place__lat ;\n wgs84:long ?event__place__long .\n }\n OPTIONAL {\n ?event__id mmm-schema:ownership_attributed_to ?event__observedOwner__id .\n ?event__observedOwner__id skos:prefLabel ?event__observedOwner__prefLabel .\n BIND(CONCAT("/actors/page/", REPLACE(STR(?event__observedOwner__id), "^.*\\\\/(.+)", "$1")) AS ?event__observedOwner__dataProviderUrl)\n }\n BIND("Provenance" AS ?event__prefLabel)\n BIND(CONCAT("/events/page/", REPLACE(STR(?event__id), "^.*\\\\/(.+)", "$1")) AS ?event__dataProviderUrl)\n }\n UNION\n {\n ?id crm:P51_has_former_or_current_owner ?owner__id .\n ?owner__id skos:prefLabel ?owner__prefLabel .\n BIND(CONCAT("/actors/page/", REPLACE(STR(?owner__id), "^.*\\\\/(.+)", "$1")) AS ?owner__dataProviderUrl)\n #OPTIONAL {\n # [] rdf:subject ?id ;\n # rdf:predicate crm:P51_has_former_or_current_owner ;\n # rdf:object ?owner__id ;\n # mmm-schema:order ?order .\n # BIND(xsd:integer(?order) + 1 AS ?owner__order)\n #}\n }\n UNION\n {\n ?id crm:P46i_forms_part_of ?collection__id .\n ?collection__id skos:prefLabel ?collection__prefLabel .\n BIND(CONCAT("/collections/page/", ENCODE_FOR_URI(REPLACE(STR(?collection__id), "^.*\\\\/(.+)", "$1"))) AS ?collection__dataProviderUrl)\n }\n UNION\n {\n ?id ^crm:P30_transferred_custody_of/crm:P7_took_place_at ?transferOfCustodyPlace__id .\n ?transferOfCustodyPlace__id skos:prefLabel ?transferOfCustodyPlace__prefLabel .\n BIND(CONCAT("/places/page/", REPLACE(STR(?transferOfCustodyPlace__id), "^.*\\\\/(.+)", "$1")) AS ?transferOfCustodyPlace__dataProviderUrl)\n }\n UNION\n {\n ?id ^crm:P30_transferred_custody_of/crm:P4_has_time-span ?transferOfCustodyTimespan__id .\n ?transferOfCustodyTimespan__id skos:prefLabel ?transferOfCustodyTimespan__prefLabel .\n ?transferOfCustodyTimespan__id dct:source ?transferOfCustodyTimespan__source__id .\n ?transferOfCustodyTimespan__source__id skos:prefLabel ?transferOfCustodyTimespan__source__prefLabel .\n OPTIONAL { ?transferOfCustodyTimespan__id crm:P82a_begin_of_the_begin ?transferOfCustodyTimespan__start }\n OPTIONAL { ?transferOfCustodyTimespan__id crm:P82b_end_of_the_end ?transferOfCustodyTimespan__end }\n }\n UNION\n {\n ?id crm:P45_consists_of ?material__id .\n ?material__id skos:prefLabel ?material__prefLabel .\n }\n UNION\n {\n ?id mmm-schema:height/crm:P90_has_value ?height .\n }\n UNION\n {\n ?id mmm-schema:width/crm:P90_has_value ?width .\n }\n UNION\n {\n ?id mmm-schema:folios/crm:P90_has_value ?folios .\n }\n UNION\n {\n ?id mmm-schema:lines/crm:P90_has_value ?lines .\n }\n UNION\n {\n ?id mmm-schema:columns/crm:P90_has_value ?columns .\n }\n UNION\n {\n ?id mmm-schema:decorated_initials/crm:P90_has_value ?decoratedInitials .\n }\n UNION\n {\n ?id mmm-schema:historiated_initials/crm:P90_has_value ?historiatedInitials .\n }\n\n \n }\n'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment