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.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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                   		  owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain         		  search:FilterValue> ;
        rdfs:range          		  xsd:boolean ;
        rdfs:subPropertyOf  		  owl:topDataProperty .

search:moreLimit
        a                   		  owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:domain         		  search:Filter ;
        rdfs:range          		  xsd:int ;
        rdfs:subPropertyOf  		  owl:topDataProperty .

Filters

An example of configuration search page filters is provided below. It includes one filter group with four filters. The first filter is range filter and enables filtering by start and end date. The second and third filters enable filtering by organizations and persons, respectively. The last one is filter which enables selection of publication years. The first filter is not public, therefore it wouldn't be seen by users. 

@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      :filter_dates , :filter_organizations , :filter_persons , :filter_publication_year .

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

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

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

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

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

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

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

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

Role based search filtering


Sorting




  • No labels