Current Release

This documentation covers the latest release of VIVO, version 1.15.x.
If you are able to help contribute to this documentation, please contact vivo at lyrasis dot org
Looking for another version? See all documentation.

Introduction

The search page can be customized in terms of filters. For the purpose of customizing search page an ontology has been defined.  

Ontology

The ontology is presented below. 

@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix search: <https://vivoweb.org/ontology/vitro-search#> .
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .

<https://vivoweb.org/ontology/vitro-search>
        a                          owl:Ontology ;
        vitro:ontologyPrefixAnnot  "search" .

search:PublicParameter  a             owl:Class .

search:SearchField  a                 owl:Class .

search:FilterValue  a                 owl:Class ;
        rdfs:subClassOf               search:PublicParameter .

search:Sort  a                        owl:Class ;
        rdfs:subClassOf               search:PublicParameter .

search:RangeFilter  a                 owl:Class ;
        rdfs:subClassOf               search:Filter .

search:FilterGroup  a                 owl:Class ;
        rdfs:subClassOf               search:PublicParameter .

search:Filter  a                      owl:Class ;
        rdfs:subClassOf               search:PublicParameter .

search:multivalued  a                 owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:SearchField ;
        rdfs:range                    xsd:boolean .

search:isAscending  a                 owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:Sort ;
        rdfs:range                    xsd:boolean .

search:indexField  a                  owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:SearchField ;
        rdfs:range                    xsd:string .

search:contains  a                    owl:ObjectProperty ;
        rdfs:domain                   search:FilterGroup ;
        rdfs:range                    search:Filter .

search:step  a                        owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:RangeFilter ;
        rdfs:range                    xsd:int .

search:isLanguageSpecific
        a                             owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:SearchField ;
        rdfs:range                    xsd:boolean .

search:filterField  a                 owl:ObjectProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:Filter ;
        rdfs:range                    search:SearchField .

search:isUriValues  a                 owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:Filter ;
        rdfs:range                    xsd:boolean .

search:order  a                       owl:FunctionalProperty , owl:DatatypeProperty ;
        rdfs:domain                   search:PublicParameter ;
        rdfs:range                    xsd:integer .

search:userInput  a                   owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:Filter ;
        rdfs:range                    xsd:boolean .

search:from  a                        owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:RangeFilter ;
        rdfs:range                    xsd:string .

search:userInputRegex
        a                             owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:Filter ;
        rdfs:range                    xsd:boolean .

search:sortField  a                   owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:domain                   search:Sort ;
        rdfs:range                    search:SearchField .

search:id  a                          owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:PublicParameter ;
        rdfs:range                    xsd:string .

search:facetResults  a                owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:Filter ;
        rdfs:range                    xsd:boolean .

search:to  a                          owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:RangeFilter ;
        rdfs:range                    xsd:string .

search:hasKnownValue  a                owl:ObjectProperty ;
        rdfs:domain                    search:Filter ;
        rdfs:range                     search:FilterValue .

search:public  a                      owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain                   search:PublicParameter ;
        rdfs:range                    xsd:boolean .

search:defaultPublic
        a                   <http://www.w3.org/2002/07/owl#DatatypeProperty> , <http://www.w3.org/2002/07/owl#FunctionalProperty> ;
        rdfs:domain         <https://vivoweb.org/ontology/vitro-search#FilterValue> ;
        rdfs:range          <http://www.w3.org/2001/XMLSchema#boolean> ;
        rdfs:subPropertyOf  <http://www.w3.org/2002/07/owl#topDataProperty> .

search:moreLimit
        a                   <http://www.w3.org/2002/07/owl#DatatypeProperty> , <http://www.w3.org/2002/07/owl#FunctionalProperty> ;
        rdfs:domain         <https://vivoweb.org/ontology/vitro-search#Filter> ;
        rdfs:range          <http://www.w3.org/2001/XMLSchema#int> ;
        rdfs:subPropertyOf  <http://www.w3.org/2002/07/owl#topDataProperty> .


An example of configuration search page is provided below.

@prefix :      <https://vivoweb.org/ontology/vitro-search-individual/> .
@prefix vitro-search: <https://vivoweb.org/ontology/vitro-search#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .

:filter_group_search_filters  a    vitro-search:FilterGroup ;
        vitro-search:contains      :range_filter_dates , :filter_organizations , :filter_persons , :filter_publication_year .

:filter_publication_year  a        vitro-search:Filter ;
        vitro-search:facetResults  true ;
        vitro-search:filterField   :field_publication_year ;
        vitro-search:id            "publication_year" ;
        vitro-search:public        true .

:field_persons  a                  vitro-search:SearchField ;
        vitro-search:indexField   "persons_ss" ;
        vitro-search:isLanguageSpecific true ;
        vitro-search:multivalued  true .

:range_filter_dates  a            vitro-search:RangeFilter ;
        vitro-search:filterField  :field_dates ;
        vitro-search:from         "1900" ;
        vitro-search:id           "dates" ;
        vitro-search:public       false ;
        vitro-search:to           "2030" .

:filter_organizations  a           vitro-search:Filter ;
        vitro-search:facetResults  true ;
        vitro-search:filterField   :field_organizations ;
        vitro-search:id            "organizations" ;
        vitro-search:isUriValues   true ;
        vitro-search:public        true .

:filter_persons  a                 vitro-search:Filter ;
        vitro-search:facetResults  true ;
        vitro-search:filterField   :field_persons ;
        vitro-search:id            "persons" ;
        vitro-search:isUriValues   true ;
        vitro-search:public        true .

:field_dates  a                    vitro-search:SearchField ;
        vitro-search:indexField    "dates_drsim" .

:field_organizations  a            vitro-search:SearchField ;
        vitro-search:indexField    "organizations_ss" ;
        vitro-search:multivalued   true .

:field_publication_year  a         vitro-search:SearchField ;
        vitro-search:indexField    "publication_year_ss" .


Filters


Role based search filtering

Sorting




  • No labels