FBC exposes an Opensearch ver 1.1 interface. In practice this interface give you the same search possibilities as simple and advanced search on FBC website. Search results are available in HTML and RSS format and contain additional Opensearch tags. They can be used to retrieve next pages of results.
FBC OpenSearch interface descriptor is available here: https://fbc.pionier.net.pl/opensearch/description.xml. It presents the basic syntax of a HTTP query for the search interface.
In the simplest usage scenario the URL looks like that:
https://fbc.pionier.net.pl/opensearch/search?searchTerms={searchTerms}
where {searchTerms}
is the place you should put your query in. For example:
https://fbc.pionier.net.pl/opensearch/search?searchTerms=culture
In the source code of RSS response you get standard RSS elements and additionally:
opensearch
prefix), containing among others information necessary for paging results (for more information check out protocol documentation ),http://fbc.pionier.net.pl/opensearch/xsd/fbc-search-addins.xsd
),relevance:score
elemtent (with scale from 0 to 1) and ese:dataProvider
element containing digital provider (library/museum etc.) that the found object is coming from.relevance:score
element is one of the official addons for Opensearch protocol. All the xmlns=http://fbc.pionier.net.pl/search-addins
elements are specific to FBC. The formal definition is available as a XSD file: https://fbc.pionier.net.pl/opensearch/xsd/fbc-search-addins.xsd
.
Search results contain a set of standard RSS channel elements and additionally:
dc:
prefix), the description was prepared by the data provider (original digital repository),ese:
prefix), that were prepared by FBC:
ese:type
– publication type, one of four: text, image, sound, videoese:dataProvider
– the name of the data providerYou might add additional filters to your search query and limit the results to those that have a match in a specific metadata element.
https://fbc.pionier.net.pl/opensearch/search?searchTerms={metElementIdFilter}%3A({searchTerms})
where you should put the identifier of metadata element of your choice into {metElementFilterId}.
For example::
https://fbc.pionier.net.pl/opensearch/search?searchTerms=dc_subject%3A(culture)
Here is the list of metadata element identifiers supported by FBC:
dc prefix
)
title
(use dc_title
as a filter),creator
(filtr dc_creator
) ,subject
(filtr dc_subject
),description
(filtr dc_description
),publisher
(filtr dc_publisher
),contributor
(filtr dc_contributor
),date
(filtr dc_date
),type
(filtr dc_type
),format
(filtr dc_format
),identifier
(filtr dc_identifier
),source
(filtr dc_source
),language
(filtr dc_language
),relation
(filtr dc_relation
),coverage
(filtr dc_coverage
),rights
(filtr dc_rights
)ese
)
type
(filtr europeana_type
)dataProvider
(filtr europeana_dataProvider
) ,You can use advanced queries too:
https://fbc.pionier.net.pl/opensearch/search?searchTerms={metElementIdFilter1}%3A({searchTerms1})%20{boolOp1}{metElementIdFilter2}%3A({searchTerms2})...
where (N
- subsequent natural numbers corresponding to parts of the advanced query)
{metElementFilterIdN}
- filtr identyfikatora elementu metadanych dla części N zapytania (lista dozwolonych wartości taka sama jak w przypadku zawężania zapytania dla pojedynczego elementu metadanych - patrz wyżej){searchTermsN}
- a query for N-part{boolOpN}
- logical operator between N-1 and N part of the query (AND
, OR
available)An example query:
To get results coming from selected data providers run a query:
https://fbc.pionier.net.pl/opensearch/search?searchTerms={searchTerms}%20AND%20(europeana_dataProvider%3A(%22{FBCDataProvider1}%22)%20OR%20europeana_dataProvider%3A(%22{FBCDataProvider2}%22))...
where {FBCDataProviderIdN}
stands for a FBC data provider (ese:dataProvider
).
Example: search data coming from 2 data providers (FBCDataProvider1=CBN%20Polona
& FBCDataProvider2=Wielkopolska%20Biblioteka%20Cyfrowa
):