Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
@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>		  owl:DatatypeProperty , <http://www.w3.org/2002/07/owl#FunctionalProperty>owl:FunctionalProperty ;
        rdfs:domain         		  <https://vivoweb.org/ontology/vitro-search#FilterValue>search:FilterValue> ;
        rdfs:range          <http://www.w3.org/2001/XMLSchema#boolean> 		  xsd:boolean ;
        rdfs:subPropertyOf  		  <http://www.w3.org/2002/07/owl#topDataProperty>owl:topDataProperty .

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

Filters

An example of configuration search page is provided below.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. 

Code Block
@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_yeardates  a        vitro-search:Filter ;
        vitro-search:facetResults  true ;
        vitro-search:filterField   :field_publication_year ;
        vitroRangeFilter ;
        vitro-search:id            "publication_yeardates" ;
        		vitro-search:publicfilterField  :field_dates ;
     true .

:field_persons  avitro-search:from         "1900" ;
           vitro vitro-search:SearchField ;
to        vitro-search:indexField   "persons_ss2030" ; 
        vitro-search:isLanguageSpecificpublic true ;
        vitro-search:multivalued  truefalse .

:range_filterfield_dates  a                    vitro-search:RangeFilterSearchField ;
        vitro-search:filterFieldindexField    :field_dates ;
"dates_drsim" .

:filter_organizations  a           vitro-search:fromFilter ;
        vitro-search:id    "1900" ;
        vitro-search:id           "dates""organizations" ;
        vitro-search:filterField   :field_organizations ;
        vitro-search:publicfacetResults  true ;
		vitro-search:isUriValues    falsetrue ;
        vitro-search:topublic           "2030"true .

:filterfield_organizations  a            vitro-search:FilterSearchField ;
        vitro-search:facetResultsindexField    true"organizations_ss" ;
        vitro-search:filterFieldmultivalued   true .

:field_organizations ;
filter_persons  a                 vitro-search:Filter ;
        vitro-search:id            "organizationspersons" ;
           vitro vitro-search:isUriValuesfilterField   true:field_persons ;
        vitro-search:public      facetResults  true .

:filter_persons;
   a     vitro-search:isUriValues   true ;
        vitro-search:Filter ;
public        vitro-search:facetResults  true ;
.

:field_persons  a      vitro-search:filterField   :field_persons ;
        vitro-search:idSearchField ;
        vitro-search:indexField   "persons_ss" ;
        vitro-search:isUriValues  isLanguageSpecific true ;
        vitro-search:public   multivalued     true .

:fieldfilter_publication_datesyear  a        vitro-search:Filter ;
             vitro   vitro-search:SearchField ;
id        vitro-search:indexField    "datespublication_drsimyear" .

:field_organizations  a            vitro-search:SearchField;
        vitro-search:filterField   :field_publication_year ;
        vitro-search:indexFieldfacetResults    "organizations_ss" true ;
        vitro-search:multivaluedpublic        true .

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

...



Role based search filtering

...