diff --git a/productMods/config/listViewConfig-rangeUnion.xml b/productMods/config/listViewConfig-rangeUnion.xml new file mode 100644 index 00000000..f240b560 --- /dev/null +++ b/productMods/config/listViewConfig-rangeUnion.xml @@ -0,0 +1,106 @@ + + + + + + + + PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#> + PREFIX core: <http://vivoweb.org/ontology/core#> + PREFIX foaf: <http://xmlns.com/foaf/0.1/> + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> + PREFIX obo: <http://purl.obolibrary.org/obo/> + PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> + + SELECT ?subclass + ?object + ?label + ?localName + ?type + ?title WHERE { + + ?subject ?property ?object . + LET (?localName := afn:localname(?object)) + + OPTIONAL { ?object rdfs:label ?label } + + OPTIONAL { + # Get mostSpecificType only for Persons + ?object vitro:mostSpecificType ?subclass . + ?subclass rdfs:label ?type . + # Display only a mostSpecificType that belongs to a classgroup. + ?subclass vitro:inClassGroup ?classGroup . + ?classGroup a vitro:ClassGroup + } + + OPTIONAL { ?object obo:ARG_2000028 ?vcard . + ?vcard vcard:hasTitle ?titleObj . + ?titleObj vcard:title ?title + } + + + FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" ) + + + # Order by ?type is important, because if the object has more than one mostSpecificType, + # they all get returned, but postprocessing culls out all but one. Ordering by ?type + # will ensure that at least we'll get the same one every time. + } ORDER BY ?subclass ASC( ?label ) ASC( ?localName ) ?type + + + + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> + + CONSTRUCT { + ?subject ?property ?object . + ?object rdfs:label ?label . + } WHERE { + { + ?subject ?property ?object . + } UNION { + ?subject ?property ?object . + ?object rdfs:label ?label . + } + } + + + + PREFIX core: <http://vivoweb.org/ontology/core#> + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> + PREFIX obo: <http://purl.obolibrary.org/obo/> + PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> + + CONSTRUCT { + ?subject ?property ?object . + ?object vitro:mostSpecificType ?subclass . + ?subclass vitro:inClassGroup ?classGroup . + ?classGroup a vitro:ClassGroup . + ?subclass rdfs:label ?type . + ?object obo:ARG_2000028 ?vcard . + ?vcard vcard:hasTitle ?titleObj . + ?titleObj vcard:title ?title + } WHERE { + { + ?subject ?property ?object . + } UNION { + ?subject ?property ?object . + ?object vitro:mostSpecificType ?subclass . + ?subclass rdfs:label ?type . + ?subclass vitro:inClassGroup ?classGroup . + ?classGroup a vitro:ClassGroup + } UNION { + ?subject ?property ?object . + ?object obo:ARG_2000028 ?vcard . + ?vcard vcard:hasTitle ?titleObj . + ?titleObj vcard:title ?title + } + } + + + + \ No newline at end of file diff --git a/rdf/display/everytime/vivoListViewConfig.rdf b/rdf/display/everytime/vivoListViewConfig.rdf index 01501ec2..c595b91f 100644 --- a/rdf/display/everytime/vivoListViewConfig.rdf +++ b/rdf/display/everytime/vivoListViewConfig.rdf @@ -82,6 +82,40 @@ listViewConfig-orcidId.xml + + + + listViewConfig-rangeUnion.xml + + + listViewConfig-rangeUnion.xml + + + listViewConfig-rangeUnion.xml + + + listViewConfig-rangeUnion.xml + + + listViewConfig-rangeUnion.xml + + + listViewConfig-rangeUnion.xml + + + listViewConfig-rangeUnion.xml + + + listViewConfig-rangeUnion.xml + + + listViewConfig-rangeUnion.xml + +