Property talk:P268

From Wikidata
Jump to navigation Jump to search


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)
Associated itemBibliothèque nationale de France (Q193563)
Has qualityVIAF component (Q26921380)
Data typeExternal identifier
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}[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 using Wikidata property P268 (Q43940480)
Related to countryFlag of France.svg France (Q142) (See 257 others)
See alsoGallica ID (P4258)
  • 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
  • Items with novalue claims
  • Items with unknown value claims
  • Usage history
  • Database reports/Humans with missing claims/P268
  • Database reports/Constraint violations/P268
  • Proposal discussionProperty proposal/Archive/3#P268
    Current uses431,423
    Search for values
    [create] Create a translatable help page (preferably in English) for this property to be included here
    Format “(\d{8}[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, SPARQL (new)
    Conflicts with “instance of (P31): Wikimedia disambiguation page (Q4167410): this property must not be used with the listed properties and values. (Help)
    List of this constraint violations: Database reports/Constraint violations/P268#Conflicts with P31, hourly updated report, search, SPARQL, SPARQL (new)
    Distinct values: this property likely contains a value that is different from all other items. (Help)
    Exceptions are possible as rare values may exist.
    List of this constraint violations: Database reports/Constraint violations/P268#Unique value, SPARQL (every item), SPARQL (by value), SPARQL (new)
    Single value: this property generally contains a single value. (Help)
    Exceptions are possible as rare values may exist. Known exceptions: Anthony Berkeley Cox (Q519357), Pierre Molaine (Q3386311), L'ingénieur (Q13526947), FT'i (Q13527513), Institut industriel du Nord (Q3152321), André Wurmser (Q15041263), Martine Pouchain (Q3295822), Clémence de Grandval (Q2980557), Jean-Louis Foncine (Q3166765), Robin Hobb (Q234403), Andreas Burnier (Q1982054), Pierre Itshak Lurçat (Q3386031), G.A. van Oorschot (Q5734761), Sainte-Foy (Q14875569)
    List of this constraint violations: Database reports/Constraint violations/P268#Single value, SPARQL, SPARQL (new)
    Qualifiers “point in time (P585), reason for deprecation (P2241), named as (P1810), alternate names (P4970): this property should be used only with the listed qualifiers. (Help)
    Exceptions are possible as rare values may exist.
    List of this constraint violations: Database reports/Constraint violations/P268#Allowed qualifiers, SPARQL, SPARQL (new)

    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 normalization[edit]

    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 exactly[edit]

    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) BnF 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 BnF 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 Mathis[edit]

    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 links[edit]

    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 properly[edit]

    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 code[edit]

    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 character[edit]


    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 doublon[edit]

    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 ( 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 Pattern[edit]

    Hello everyone,

    my bot detected more than 1,300 articles on multiple wikis (list) with malformed BnF ID (P268) values. This is a huge amount. Is there a simple rule which can be used to generate a working BnF 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)