Property talk:P268

Add topic
Active discussions


Bibliothèque nationale de France ID
identifier for the subject issued by BNF (Bibliothèque nationale de France). Format: 8 digits followed by a check-digit or letter, do not include the initial 'cb'.
Descriptionsubject's BNF (Bibliothèque nationale de France) authority control number
RepresentsBnF authorities (Q19938912), Bibliothèque nationale de France (Q193563), general catalog of BnF (Q15222191)
Associated itemBibliothèque nationale de France (Q193563)
Applicable "stated in" valueBnF authorities (Q19938912)
Has qualityVIAF component (Q26921380)
Data typeExternal identifier
Corresponding templateTemplate:BNF (Q18668628)
Template parameteren:Template:Authority control: "BNF" - Template:Authority control (Q3907614)
Domainpeople (authors/writers/musicians), places, concepts... (note: this should be moved to the property statements)
Allowed values\d{8,9}[0-9bcdfghjkmnpqrstvwxz]
ExampleRené Magritte (Q7836)123735831 (RDF)
Ukraine (Q212)11865672n (RDF)
dinosaur (Q430)124343565 (RDF)
Formatter URL$1
Robot and gadget jobsDeltaBot does the following jobs:
Tracking: usageCategory:Pages with BNF identifiers (Q8709055)
Related to countryFlag of France (1794–1815, 1830–1974, 2020–present).svg France (Q142) (See 521 others)
See alsoGallica ID (P4258)
  • Items with the most statements of this property
  • Count of items by number of statements (chart)
  • Count of items by number of sitelinks (chart)
  • Items with the most identifier properties
  • Items with no other external identifier
  • Items with no other statements
  • Most recently created items
  • Items with novalue claims
  • Items with unknown value claims
  • Usage history (total)
  • Mix'n'match (Report)
  • Database reports/Humans with missing claims/P268
  • Database reports/Constraint violations/P268
  • Map
  • Random list
  • Proposal discussionProposal discussion
    Current uses
    Main statement599,41462.2% of uses
    Qualifier5<0.1% of uses
    Reference363,64437.8% of uses
    Search for values
    [create Create a translatable help page (preferably in English) for this property to be included here]
    Format “(\d{8,9}[0-9bcdfghjkmnpqrstvwxz]|): value must be formatted using this pattern (PCRE syntax). (Help)
    Exceptions are possible as rare values may exist.
    List of this constraint violations: Database reports/Constraint violations/P268#Format, SPARQL
    Conflicts with “instance of (P31): Wikimedia disambiguation page (Q4167410): this property must not be used with the listed properties and values. (Help)
    Exceptions are possible as rare values may exist.
    List of this constraint violations: Database reports/Constraint violations/P268#Conflicts with, search, SPARQL
    Single value: this property generally contains a single value. (Help)
    Exceptions are possible as rare values may exist. Known exceptions: L'ingénieur (Q13526947)
    List of this constraint violations: Database reports/Constraint violations/P268#Single value, SPARQL
    Allowed entity types are Wikibase item (Q29934200): the property may only be used on a certain entity type (Help)
    Exceptions are possible as rare values may exist.
    List of this constraint violations: Database reports/Constraint violations/P268#allowed entity types
    Scope is as main value (Q54828448), as reference (Q54828450): the property must be used by specified way only (Help)
    List of this constraint violations: Database reports/Constraint violations/P268#scope, hourly updated report, SPARQL

    Pattern ^cb(\d{8}[0-9bcdfghjkmnpqrstvwxz])$ will be automatically replaced to \1.
    Testing: TODO list

    Pattern ^12148/cb(\d{8}[0-9bcdfghjkmnpqrstvwxz])$ will be automatically replaced to \1.
    Testing: TODO list


    parameter value normalizationEdit

    re: MediaWiki talk:Gadget-AuthorityControl.js Do you know how the trailing character for the BnF identifier is calculated? The parameter values in the wikipedias and in wikidata may differ. Many links are broken. Magnus Manske's authority control.js tool detects only the identifiers.
    note: scanning the source code page for lines using "new Node" helps identifying the national identifiers
    see: viaf:39382430 for Q1401 Petrarch 11919436b without final "b"

    new Node("BNF|11919436", "BNF", "Bibliothèque nationale de France");

    First one should know the algorithm then a migration would be necessary to "normalize" the parameter values used in the templates and in the wikipedias. The link generation should not mather of which version is present. Thanks for any help!
    לערי ריינהארט (talk) 13:14, 9 October 2013 (UTC)

    Please post any information abouth the checksum algorithm here. Thanks! לערי ריינהארט (talk) 17:48, 10 October 2013 (UTC)
    Hello, what do you need exactly? I work at the BnF and can ask the guys in charge of it to be in touch with you. Best, Remi Mathis (talk) 21:16, 10 October 2013 (UTC)

    re: what do we need exactlyEdit

    At the top of this page you will see the link

    List of this constraint violations: Database reports/Constraint violations/P268#Single value

    Here are some (only an extract) commented examples from that section (which is updated with bots)

    • Violations count: 27
      • John Paul II (Q989): 12079078, 120790780 - see an extra 0 - related to viaf:35605
      • Astrid Varnay (Q254518): 14414944p, 14414944 - see an extra p
      • Fernand Khnopff (Q559559): 11939256t, 11939256 - see an extra t
      • Dominique Noguez (Q1236969): 11917804b, 11917804 - see an extra b
      • Albert Crahay (Q2758805): 14975754s, 14975754 - see an extra s

    In the records only the shorter value is present. See the history section of the History of VIAF ID:35605 (81) section at viaf:35605.
    It shows only BNF|12079078 lines folowed by add or delete and a timestamp. This is the shorter form. In order to generate an url to BNF one needs that the value 0 needs to be added to the more general algorythm described below.
    However in order to create a proper url to BnF one needs

    1. to add a cb predix
    2. add the identifier fetched from VIAF records
    3. append the "checksum / validation" digit or character

    Example links for: for John Paul II (Q989): 12079078, 120790780 - see an extra 0

    1. fails
    2. is OK

    I hope I could ilustrate the problem. Please do not hesitate to ask for a better description from other users. Best regards לערי ריינהארט (talk) 23:09, 10 October 2013 (UTC)

    re: Q15060040 Avraham Novershtern
    A time consuming method to get the requested 13483406t from a known 13483406 is to look at where is displayed. לערי ריינהארט (talk) 23:37, 11 October 2013 (UTC)

    hi, the French cataloguers and librarians use the complete value after the ARK and before /PUBLIC : generally it begins with cb and finishes with a letter, but not always… it would certainly be better to get the "whole" code, since they are sometimes subject to variations, that cannot be easily anticipated… The BNF does not give explanations on "how" the code is constructed. Perhaps, you could ask Rémi Mathis (Remi Mathis who is, at the same time, librarian at the BNF and President of Wikimedia France ;) --Hsarrazin (talk) 14:04, 12 October 2013 (UTC)
    Thanks for this idea! לערי ריינהארט (talk) 15:14, 12 October 2013 (UTC)

    what's next?Edit

    @לערי ריינהארט, Hsarrazin, Remi Mathis:: Apparently the identifier does not start with cb when the resource is a book edition. For instance Dictionnaire des Parlementaires français de 1789 à 1889 (volume 1) (Q15266688) ->bpt6k83707p. So I think we should use the long-form identifiier, even though, annoyingly, it is not the most prominent in VIAF. Then we should change the link in MediaWiki:Gadget-AuthorityControl.js from '$1/PUBLIC' to '$1' (the /PUBLIC suffix does not appear necessary and it does not work with non-cb entries)
    @GautierPoupeau:: if we change the format, could your bot update (and ideally also maintain) Bibliothèque nationale de France ID (P268) values ? --Zolo (talk) 07:20, 15 February 2014 (UTC)
    Personally I hing that we should not change the values now until all participating web sites as the Wikipedias could automatically switch the link generation via a piece of common software.
    User:Magnus_Manske/missing_props.js is able to perform context sensitive actions. My opinion is that MediaWiki:Gadget-AuthorityControl.js should do the same and generate appropriate links for books / works. לערי ריינהארט (talk) 07:47, 15 February 2014 (UTC)
    the prefix bpt6k doesn't aim to identify the book edition, but the digitized book. All identifier in BnF Catalog use the prefix cb. I agree it would be better if we can indicate all ark identifier (with prefix) but it will be a big job to change all existing identifier and like לערי ריינהארט I'm not sure it's a good idea for the moment. If you make this choice, I can make (and maintains) the modifications but I have some works to do it. Last information : the last character in ARK identifier is a control character and BnF don't want to tell how it is computed... GautierPoupeau (talk) 09:23, 15 February 2014 (UTC)
    BNF seems to use the arc URI scheme like others use the urn scheme for general administration of persistent addresses. This Property Bibliothèque nationale de France ID (P268) is about authority records (metadata as placeholders for persons and other objects of the real world), a subset of the items listed in the BNF catalogue and the "items in its catalogue" (als metadata as placeholders for items in stock or their slight generalisation to "editions") are again a subset of the "interesting things BNF puts into the Web" (data or digitized things which can be acessed under that address). We cannot extend P268 to such an extent without loosing most of the semantic differences between this property and any other (kind of "if it can be given an URI we don't need a specialized property at all"). -- Gymel (talk) 09:48, 15 February 2014 (UTC)
    @GautierPoupeau: thanks for the info. actually the bpt6k means only the electronic file, not the book, no ? That's the only way I can make sense of "format:application/pdf" in the notice. I think linking to individual books is already one we do for Google Books ID (P675). That is convenient, though not really exact. Are there entries for individual volumes. In I see a link to the entry for the 5 volume set but nothing about the individual volume (but I think we need a Wikidata item per volume, as the publication date, and, it seems, authors change from one volume to the next).
    @Gymel: ark identify objects, not webpages. I do not see how that matters whether the object is electronic or real-world as long as it is the same as the one we aim to describe in Wikidata. This property is about providing BNF identifier for objects and apart from practical limitations, I do not see any reason why it should be restricted to those in the cb namespace. --Zolo (talk) 10:09, 15 February 2014 (UTC) shows a digital object in the Gallica collection, thus probably ark:/12148/bpt6k83707p "is" this digital object. In a sense this is the same as showing a catalogue record for the person Adolphe Robert, thus probably ark:/12148/cb12283644f "is" this person (a real world object), which is known here as Adolphe Robert (Q2824900). However Dictionnaire des Parlementaires français de 1789 à 1889 (volume 1) (Q15266688) "is" not the digital object ark:/12148/bpt6k83707p ! There exists i.e. ark:/12148/cb31224546x which stands for for the 5-volume edition (more a "concept" than an "object" - it's like genotype vs. phenotype), of which Dictionnaire des Parlementaires français de 1789 à 1889 (volume 1) (Q15266688) would be a "part" and lists 29 "items", our electronic object bpt6k83707p for (the digitization or electronic edition derived from the print) volume 1 being one of it.
    Unfortunately there is also the issue of "5 volumes as one edition" in the BNF catalogue vs. "one volume" as a Wikidata item, but even if we disregard this obstacle (which might have been the motiviation for supplying a categorically wrong but with respect to part/whole more appropriate identifier) we have to admit that there are two kinds of ark-identifiers: those with cb... (cote bibliographique?) for the description of the (abstract) edition in the catalogue and bp.... for access to digital objects in their digital collections (the "Gallica" identifier if you like to put it like this). Both of these identifiers signify something, and of course there is a close relation between them ("digital object derived in a purely reproductive manner from a certain physical exemplar belonging to this edition"), but they can only be equated in contexts with much coarser distinctions than wikidata already has developed. Gymel (talk) 15:09, 15 February 2014 (UTC)

    Q673718 Rémi MathisEdit

    Q673718 Rémi Mathis is referenced at User talk:Remi Mathis. There you can see

    1. commons: is unchanged {{Authority control|BNF=cb166030520|VIAF=250789527|SUDOC=096153520}} · Please note the "cb" prefix!

    At some point in time one needs to use the same / similar formats in all WMF projects. Regards לערי ריינהארט (talk) 15:14, 12 October 2013 (UTC)

    BnF identifier - constraint violation format - broken linksEdit

    Hi! Format "[0-9]{8,9}[a-z]? handles two kind of identifier values / versions:

    1. length 8 values (digits only)
      they generate broken links because today the gadget MediaWiki:Gadget-AuthorityControl.js is not able to calculate the trailing validation character (a digit or a..z character unless documentation will be available)
    2. length 8 values of one of the two formats
      1. 9 digits
      2. 8 digits followed by a character (a..z)

    Because the values for the BnF identifier is transcrluded at various projects - either by projects using Module:Authority control (Q11640331) at ( 'da', 'en', 'fr', 'ilo', 'ja', 'pl', 'vi', 'zh' ) and soon at ( 'eo', 'ro', 'ru', 'yi' ) da:Autoritetsdata fr:Autorité pl:Kontrola autorytatywna · eo:Bibliotekoj ro:Informații bibliotecare ru:Библиоинформация yi:ביכער - or copied by users or bots it makes no sense to use values generating broken links.
    Please change the regex expression so that only the second variant is regarded as valid and everything else as invalid. I never managed regex but a OR between the following regex might help:


    Thanks! לערי ריינהארט (talk) 09:24, 12 October 2013 (UTC)

      Done Thanks to User:Ivan A. Krestinin talk for the fix! לערי ריינהארט (talk) 11:17, 12 October 2013 (UTC)

    Constraint violations report does not update properlyEdit

    Hi! Wikidata:Database reports/Constraint violations/P268 shows "Data time stamp: 15 October 2013 — Items processed: 16659"
    It lists also: Josip Broz Tito (Q9161) with the values Q9161: cb120753467
    At the corresponding revision history you can see:

    10:37, 12 October 2013‎ לערי ריינהארט (talk | contribs)‎ . . (23,299 bytes) (-3)‎ . . (‎Changed claim: Property:P268: 120753467)
    it was changed some days ago

    Please verify also other listed pages listed with values starting with cb. Thanks in advance for fixing this. Regards לערי ריינהארט (talk) 07:00, 16 October 2013 (UTC)

    Hi, looks like this problem. — Ivan A. Krestinin (talk) 18:20, 16 October 2013 (UTC)

    proper link value at onmouseover data in source codeEdit

    Starting at Victor Hugo (Q535) using viaf:9847974 you may find in the source code of the VIAF record the following:

    <a title="Authority/Source Record" alt="Authority/Source Record" onmousedown="doMouseDown(event, 'BNF|12325135')" onmouseup="doMouseUp(event)" onmouseout="unselectNode('BNF|12325135')" onmouseover="selectNode('BNF|12325135')" id="BNF|12325135" href=""> ...

    Plese note cb12325135h with the final h character. Regards לערי ריינהארט (talk) 03:25, 22 October 2013 (UTC)

    Prefix and check characterEdit


    Since "cb" (in theory) has to be prepended before application of the (proper) checksum algorithm modulo 29, and VIAF does not list the checksum character, and the "notice n°" in is without "cb" and the check character (however with a prefix "FRBNF"), I propose to store only the 8-digit raw identifier in Wikidata. -- Gymel (talk) 20:31, 7 November 2013 (UTC)

    from user_talk:Magnus Manske#temporary normalisation for BnF identifier
    The BnF checksum is a problem I ran into before when writing an VIAF data importer for Wikisource. I worked it out eventually after reading the ARK and NOID specs, and I detailed the checksum generation at Wikisource along with a JS snippet that can convert an 8-digit string (such as from VIAF) into a cb-prefixed, checksum-suffixed form. Inductiveload (talk) 14:38, 6 November 2013 (UTC)
    fixing in progress לערי ריינהארט (talk)
      Done by Magnus Manske: [1]Ayack (talk) 09:16, 3 December 2013 (UTC)

    Notices en doublonEdit

    Listes des notices identifiées comme doublon et concernant une même personne sous un même nom. L'objectif est de les signaler à la BnF (coordination-bibliographique afin qu'elles soient fusionnées.

    Conflicts with instance of(P31)Edit

    This is plainly wrong. An identifier for a book id imply that this is a property of an instance of a book or a subclass. It can make a conflict but the existence of P31 for some instance is not enough. Jeblad (talk) 22:23, 25 February 2015 (UTC)

    Troubleshooting PatternEdit

    Hello everyone,

    my bot detected more than 1,300 articles on multiple wikis (list) with malformed Bibliothèque nationale de France ID (P268) values. This is a huge amount. Is there a simple rule which can be used to generate a working Bibliothèque nationale de France ID (P268) identifier out of the malformed identifiers (mostly \d{8}) which are listed at the tool? Has anybody a good solution for that problem?

    Thanks, -- T.seppelt (talk) 19:00, 17 July 2015 (UTC)

    please see Wikidata talk:WikiProject Authority control -- T.seppelt (talk) 19:28, 2 October 2015 (UTC)

    From my bot`s code:

    std::string BNF8ToBNF9(const std::string& bnf8)
    	std::string id = "cb" + bnf8;
    	const static std::string xdigits = "0123456789bcdfghjkmnpqrstvwxz";
    	unsigned int check_digit = 0;
    	for (size_t i = 0; i < id.size(); i++)
    		size_t pos = xdigits.find(id[i]);
    		if (pos == std::string::npos)
    			throw CException("Invalid BNF8 format: " + id);
    		check_digit += pos * (i + 1);
    	std::string bnf9 = bnf8 + " ";
    	bnf9[8] = xdigits[check_digit % xdigits.size()];
    	return bnf9;

    Ivan A. Krestinin (talk) 20:11, 2 October 2015 (UTC)

    Thank you. For those who are interested in the Java implementation:

    public static String convertBnF8toBnF9(String value) {
    		return value;
    	value = value.replaceAll("^cb", "");
    	value = "cb" + value.replaceAll("[^\\d]" , "" ) ;
    	String bnf_xdigits = "0123456789bcdfghjkmnpqrstvwxz";
    	int bnf_check_digit = 0;
    	for (int i=0; i < value.length(); i++){
            bnf_check_digit += bnf_xdigits.indexOf(value.charAt(i)) * (i+1);
    	value = value.substring(2)+bnf_xdigits.charAt(bnf_check_digit % bnf_xdigits.length());
    	return value;

    T.seppelt (talk) 08:53, 4 October 2015 (UTC)

    How to add Bnf ID?Edit

    Hello. Can anyone teach me how to add BNF ID in Wikidata entry? I add all the identifiers with the help of VIAF. But the BNF ID recorded at VIAF never work. Please ping me while replying. --Gazal world (talk) 19:39, 12 January 2021 (UTC)

    @Gazal world: I can tell you how. There are numerous ways. The simplest way is to add a script that then adds all of the other IDs from individual libraries in VIAF. See and add two scripts via, which will redirect you to your own common.js page to add scripts. These are the scripts you should add:
       importScript( 'User:Bargioni/moreIdentifiers defaultconf.js' );
       importScript( 'User:Bargioni/moreIdentifiers.js' );

    You should also add this script: importScript('User:1Veertje/identifierInput.js'); The script lets you paste in a full URL value for an identifier property and automatically strips the URL down to the identifier.

    If you want to just do it manually, you can get the BnF ID from the URL found in the BnF icon in VIAF. For example, if you are on this page in VIAF:, if you right click on the French flag and copy the URL there, you get The ID is the last part without "cb": 122668507. If you just click on the French flag it takes you to and you can copy from the browser address bar and past it into Wikidata.

    Hope this helps. UWashPrincipalCataloger (talk) 20:59, 12 January 2021 (UTC)

    Hi Gazal world and UWashPrincipalCataloger,
    To complete yourself, you can also check on ISNI, it's always the right link.
    If Viaf have only the FRBNF id like FRBNF17005663X :
    1. Remove FRBNF and the last character to get 17005663
    2. Go to
    3. Look at the link on Notice correspondante dans Catalogue général, or on the Permalien
    Otherwise User:Bargioni/moreIdentifiers always does the job well.
    eru [Talk] [french wiki] 21:15, 12 January 2021 (UTC)
    All the information by UWashPrincipalCataloger are correct and useful, however they all relate on VIAF, which not always reports the id requested by Wikidata, which has the last control-digit. In cases in which VIAF doesn't have the control-digit, you can use the very good method indicated above by Eru or look for the name of the person in and find through it the complete id, containing the final control-digit; otherwise, you can add the "wrong" ID (= without control-digit) and probably a bot will pass soon adding the control digit. Ask if I'm not fully clear. Good evening, --Epìdosis 21:18, 12 January 2021 (UTC)
    • Hello UWashPrincipalCataloger and all. That is perfect. I understood now. I add all identifiers manually. I don't use script and don't have common.js page. Thank you very much for answering. ---Gazal world (talk) 21:45, 12 January 2021 (UTC)
    • I highly recommend creating your common.js page. It will make adding the IDs much much quicker and easier. Just copy the URL, paste it in, and the script will change it to the correct identifier. Saves a lot of time and creating your common.js page is very simple. Just go to and create your page from there and then paste in the scripts I mentioned. Much better than manually entering just the ID. UWashPrincipalCataloger (talk) 21:54, 12 January 2021 (UTC)
    UWashPrincipalCataloger Hmm. Created. Working fine. Thank you. I will ask you if I get stuck anywhere. --Gazal world (talk) 22:18, 12 January 2021 (UTC)
    Happy to help if you get stuck. The script importScript('User:1Veertje/identifierInput.js'); will also work with many other URLs to shorten them to just the identifier. UWashPrincipalCataloger (talk) 23:49, 12 January 2021 (UTC)

    Differentiating identifiers housed under but not catalogue.bnf.frEdit

    Is there a way to do this? So that an ID like 12781690 sends you to the correct page rather than an error page. It seems that everything housed at is housed at, but not vice versa, so perhaps all links could be sent through the latter? Star Garnet (talk) 22:23, 1 December 2021 (UTC)

    Hi @Star Garnet,
    The correct catalog page is (link at the bottom of the data page).
    As far as I know, both pages always exist. — eru [Talk] [french wiki] 06:21, 3 December 2021 (UTC)
    ps: and the permanent link for the data is, so with exactly the same identifier. — eru [Talk] [french wiki] 06:24, 3 December 2021 (UTC)
    @eru Interesting. It appears they have an issue with dropping a digit from one subdomain to the other. Thanks! Star Garnet (talk) 06:38, 3 December 2021 (UTC)

    How to link values from (Q50358336)Edit


    One of the most used external ids in (Q50358336) are the BNF ones. I'm finding troubles using the correct id. See this case:

    Then, I really have no idea which value use to let P268 build the correct BNF link. I don't know if I'm missing something obvious. —Ismael Olea (talk) 13:27, 31 December 2021 (UTC)

    Hi Olea, the correct id is not on data but on the catalog site :, so the correct id is just 119762667
    It can be found at the bottom of in "Equivalent record in Catalogue général" and there is also the "Permalink"
    In conclusion just take the end of the link present on BNE. — eru [Talk] [french wiki] 09:48, 1 January 2022 (UTC)
    @Eru thanks! —Ismael Olea (talk) 10:53, 1 January 2022 (UTC)
    Return to "P268" page.