diff --git a/.gitignore b/.gitignore index b6bbfa4..01f7698 100644 --- a/.gitignore +++ b/.gitignore @@ -10,8 +10,8 @@ # rspec failure tracking .rspec_status -*.json -*.json.gz -*.gem +/*.json +/*.json.gz +/*.gem Gemfile.lock diff --git a/.rubocop.yml b/.rubocop.yml index 80e255b..316d940 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -21,6 +21,6 @@ Metrics/PerceivedComplexity: Style/SafeNavigationChainLength: Enabled: false RSpec/ExampleLength: - Max: 10 + Max: 12 RSpec/MultipleExpectations: Enabled: false diff --git a/spec/digital_scriptorium/ds_item_spec.rb b/spec/digital_scriptorium/ds_item_spec.rb index e8f5ad8..70f4f1c 100644 --- a/spec/digital_scriptorium/ds_item_spec.rb +++ b/spec/digital_scriptorium/ds_item_spec.rb @@ -6,15 +6,9 @@ module DigitalScriptorium include WikibaseRepresentable::Representers RSpec.describe DsItem do - let(:holding_json) do - '{"id":"Q102","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q2"},"type":"wikibase-entityid"}}}],"P1":[{"mainsnak":{"datavalue":{"value":"DS 1","type":"string"}}}]}}' - end - let(:manuscript_json) do - '{"id":"Q101","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q1"},"type":"wikibase-entityid"}}}],"P2":[{"mainsnak":{"datavalue":{"value":{"id":"Q102"},"type":"wikibase-entityid"}}}]}}' - end - let(:record_json) do - '{"id":"Q103","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q3"},"type":"wikibase-entityid"}}}],"P3":[{"mainsnak":{"datavalue":{"value":{"id":"Q101"},"type":"wikibase-entityid"}}}]}}' - end + let(:holding_json) { File.read(File.expand_path('../fixtures/holding.json', __dir__)) } + let(:manuscript_json) { File.read(File.expand_path('../fixtures/manuscript.json', __dir__)) } + let(:record_json) { File.read(File.expand_path('../fixtures/record.json', __dir__)) } it 'correctly reports if it is a holding' do item = ItemRepresenter.new(described_class.new).from_json(holding_json) diff --git a/spec/digital_scriptorium/ds_meta_spec.rb b/spec/digital_scriptorium/ds_meta_spec.rb index 9962f94..e8c5a87 100644 --- a/spec/digital_scriptorium/ds_meta_spec.rb +++ b/spec/digital_scriptorium/ds_meta_spec.rb @@ -6,15 +6,9 @@ module DigitalScriptorium include WikibaseRepresentable::Representers RSpec.describe DsMeta do - let(:holding_json) do - '{"id":"Q102","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q2"},"type":"wikibase-entityid"}}}],"P1":[{"mainsnak":{"datavalue":{"value":"DS 1","type":"string"}}}]}}' - end - let(:manuscript_json) do - '{"id":"Q101","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q1"},"type":"wikibase-entityid"}}}],"P2":[{"mainsnak":{"datavalue":{"value":{"id":"Q102"},"type":"wikibase-entityid"}}}]}}' - end - let(:record_json) do - '{"id":"Q103","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q3"},"type":"wikibase-entityid"}}}],"P3":[{"mainsnak":{"datavalue":{"value":{"id":"Q101"},"type":"wikibase-entityid"}}}]}}' - end + let(:holding_json) { File.read(File.expand_path('../fixtures/holding.json', __dir__)) } + let(:manuscript_json) { File.read(File.expand_path('../fixtures/manuscript.json', __dir__)) } + let(:record_json) { File.read(File.expand_path('../fixtures/record.json', __dir__)) } it 'initializes from linked records in export' do holding = ItemRepresenter.new(DsItem.new).from_json(holding_json) diff --git a/spec/digital_scriptorium/export_representer_spec.rb b/spec/digital_scriptorium/export_representer_spec.rb index 41ba092..60ef13c 100644 --- a/spec/digital_scriptorium/export_representer_spec.rb +++ b/spec/digital_scriptorium/export_representer_spec.rb @@ -7,21 +7,11 @@ module DigitalScriptorium include WikibaseRepresentable::Representers RSpec.describe ExportRepresenter do - let(:holding_json) do - '{"type":"item","id":"Q102","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q2"},"type":"wikibase-entityid"}}}],"P1":[{"mainsnak":{"datavalue":{"value":"DS 1","type":"string"}}}]}}' - end - let(:manuscript_json) do - '{"type":"item","id":"Q101","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q1"},"type":"wikibase-entityid"}}}],"P2":[{"mainsnak":{"datavalue":{"value":{"id":"Q102"},"type":"wikibase-entityid"}}}]}}' - end - let(:record_json) do - '{"type":"item","id":"Q103","claims":{"P16":[{"mainsnak":{"datavalue":{"value":{"id":"Q3"},"type":"wikibase-entityid"}}}],"P3":[{"mainsnak":{"datavalue":{"value":{"id":"Q101"},"type":"wikibase-entityid"}}}]}}' - end - let(:property_json) do - '{"type":"property","id":"P16","datatype":"wikibase-item","labels":{"en":{"language":"en","value":"instance of"}}}' - end - let(:export_json) do - "[#{holding_json},#{manuscript_json},#{record_json},#{property_json}]" - end + let(:holding_json) { File.read(File.expand_path('../fixtures/holding.json', __dir__)) } + let(:manuscript_json) { File.read(File.expand_path('../fixtures/manuscript.json', __dir__)) } + let(:record_json) { File.read(File.expand_path('../fixtures/record.json', __dir__)) } + let(:property_json) { File.read(File.expand_path('../fixtures/instance_of.json', __dir__)) } + let(:export_json) { "[#{holding_json},#{manuscript_json},#{record_json},#{property_json}]" } it 'deserializes a Wikibase export from JSON' do export = described_class.new(Export.new).from_json(export_json) @@ -31,15 +21,5 @@ module DigitalScriptorium expect(export[2]).to be_instance_of DsItem expect(export[3]).to be_instance_of Property end - - it 'transforms a Wikibase export to a Hash' do - export = described_class.new(Export.new).from_json(export_json) - expect(export.to_hash).to eq({ - 'Q102' => ItemRepresenter.new(DsItem.new).from_json(holding_json), - 'Q101' => ItemRepresenter.new(DsItem.new).from_json(manuscript_json), - 'Q103' => ItemRepresenter.new(DsItem.new).from_json(record_json), - 'P16' => PropertyRepresenter.new(Property.new).from_json(property_json) - }) - end end end diff --git a/spec/digital_scriptorium/export_spec.rb b/spec/digital_scriptorium/export_spec.rb new file mode 100644 index 0000000..18800a5 --- /dev/null +++ b/spec/digital_scriptorium/export_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'wikibase_representable' + +module DigitalScriptorium + include WikibaseRepresentable::Model + include WikibaseRepresentable::Representers + + RSpec.describe Export do + let(:holding_json) { File.read(File.expand_path('../fixtures/holding.json', __dir__)) } + let(:manuscript_json) { File.read(File.expand_path('../fixtures/manuscript.json', __dir__)) } + let(:record_json) { File.read(File.expand_path('../fixtures/record.json', __dir__)) } + let(:property_json) { File.read(File.expand_path('../fixtures/instance_of.json', __dir__)) } + + it 'transforms a Wikibase export to a Hash' do + export = described_class.new + holding = ItemRepresenter.new(DsItem.new).from_json(holding_json) + manuscript = ItemRepresenter.new(DsItem.new).from_json(manuscript_json) + record = ItemRepresenter.new(DsItem.new).from_json(record_json) + property = PropertyRepresenter.new(Property.new).from_json(property_json) + export << holding << manuscript << record << property + + expect(export.to_hash).to eq({ + 'Q542' => holding, + 'Q543' => manuscript, + 'Q544' => record, + 'P16' => property + }) + end + end +end diff --git a/spec/fixtures/holding.json b/spec/fixtures/holding.json new file mode 100644 index 0000000..a36e64b --- /dev/null +++ b/spec/fixtures/holding.json @@ -0,0 +1,167 @@ +{ + "type": "item", + "id": "Q542", + "labels": { + "en": { + "language": "en", + "value": "Holding: University of Pennsylvania" + } + }, + "descriptions": { + "en": { + "language": "en", + "value": "Holding of metadata collected by UPenn from University of Pennsylvania (9949945603503681, Oversize LJS 110)" + } + }, + "aliases": [], + "claims": { + "P16": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P16", + "hash": "4dd159a209ed411a4f50592de9ee831893162774", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 2, + "id": "Q2" + }, + "type": "wikibase-entityid" + } + }, + "type": "statement", + "id": "Q542$6BB273DA-1E75-45FB-99DB-952A3AD3C61F", + "rank": "normal" + } + ], + "P38": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P38", + "hash": "b6ce8b7be90c47d6e95667f5cb3b857a5c72cd6b", + "datavalue": { + "value": { + "time": "+2022-12-23T00:00:00Z", + "timezone": 0, + "before": 0, + "after": 0, + "precision": 11, + "calendarmodel": "http://www.wikidata.org/entity/Q1985727" + }, + "type": "time" + } + }, + "type": "statement", + "id": "Q542$EBB62690-BAA8-4223-8900-00DAF2DC7859", + "rank": "normal" + } + ], + "P5": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P5", + "hash": "9374610faba500b29dedf759055e43198e98cded", + "datavalue": { + "value": "University of Pennsylvania", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P4": [ + { + "snaktype": "value", + "property": "P4", + "hash": "9a1bca9ae683999ce197133cd1e265a01825363c", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 374, + "id": "Q374" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P4" + ], + "id": "Q542$B0FDFE38-AAA8-4F33-AFC6-D486673EB44E", + "rank": "normal" + } + ], + "P6": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P6", + "hash": "7d915bfe178137b727c89aedc21b9470aa87b484", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 4, + "id": "Q4" + }, + "type": "wikibase-entityid" + } + }, + "type": "statement", + "id": "Q542$A2575F13-07E2-43CD-900C-0C5E9832CD64", + "rank": "normal" + } + ], + "P7": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P7", + "hash": "66786f395ee93dd9adaa79494093596e700d8c60", + "datavalue": { + "value": "9949945603503681", + "type": "string" + } + }, + "type": "statement", + "id": "Q542$AB8B602B-7A79-4CDD-9CFD-F0136EE635EC", + "rank": "normal" + } + ], + "P8": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P8", + "hash": "9fd44b4cc9821c7bab3b7a68f9a3af3a132da32e", + "datavalue": { + "value": "Oversize LJS 110", + "type": "string" + } + }, + "type": "statement", + "id": "Q542$C046FA26-2BC9-4B62-8A1B-8251861DEFEF", + "rank": "normal" + } + ], + "P9": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P9", + "hash": "1f6b3c24699842b0f1cff5b5349144fcf0734f17", + "datavalue": { + "value": "https://franklin.library.upenn.edu/catalog/FRANKLIN_9949945603503681", + "type": "string" + } + }, + "type": "statement", + "id": "Q542$9853212B-9FE4-4C16-8C76-C2BCEB703714", + "rank": "normal" + } + ] + }, + "sitelinks": [] +} diff --git a/spec/fixtures/instance_of.json b/spec/fixtures/instance_of.json new file mode 100644 index 0000000..796be55 --- /dev/null +++ b/spec/fixtures/instance_of.json @@ -0,0 +1,50 @@ +{ + "type": "property", + "datatype": "wikibase-item", + "id": "P16", + "labels": { + "en": { + "language": "en", + "value": "instance of" + } + }, + "descriptions": { + "en": { + "language": "en", + "value": "that class of which this subject is a particular example and member" + } + }, + "aliases": [], + "claims": { + "P45": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P45", + "hash": "b97268ae16cea1cf5fde1a532bd4a6b633c836f1", + "datavalue": { + "value": "http://www.wikidata.org/entity/P31", + "type": "string" + } + }, + "type": "statement", + "id": "P16$04eacd5d-42b5-63bb-4de3-1743285c91eb", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P45", + "hash": "79ed4ac5097dd275584b1b2c37c30f123290be20", + "datavalue": { + "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", + "type": "string" + } + }, + "type": "statement", + "id": "P16$6b149b6f-4ae7-f63d-4fa6-0ca017f60613", + "rank": "normal" + } + ] + } +} diff --git a/spec/fixtures/manuscript.json b/spec/fixtures/manuscript.json new file mode 100644 index 0000000..867b5d6 --- /dev/null +++ b/spec/fixtures/manuscript.json @@ -0,0 +1,76 @@ +{ + "type": "item", + "id": "Q543", + "labels": { + "en": { + "language": "en", + "value": "DS121" + } + }, + "descriptions": { + "en": { + "language": "en", + "value": "Manuscript from University of Pennsylvania (9949945603503681)" + } + }, + "aliases": [], + "claims": { + "P1": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P1", + "hash": "902dc7465ced67bbe4960856c661406eb6eb77e0", + "datavalue": { + "value": "DS121", + "type": "string" + } + }, + "type": "statement", + "id": "Q543$6BB164FA-0616-4A6A-B290-0521CB46451A", + "rank": "normal" + } + ], + "P16": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P16", + "hash": "630c6c5d1f0af632d49479574f9842c4c060f46b", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 1, + "id": "Q1" + }, + "type": "wikibase-entityid" + } + }, + "type": "statement", + "id": "Q543$5D1572B2-662D-4B54-9159-810B6F35EC7B", + "rank": "normal" + } + ], + "P2": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P2", + "hash": "21cd3fe51e2895f751b70fa40d90068a04090da8", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 542, + "id": "Q542" + }, + "type": "wikibase-entityid" + } + }, + "type": "statement", + "id": "Q543$AF62EB6E-6067-4C11-A252-2E6929A44348", + "rank": "normal" + } + ] + }, + "sitelinks": [] +} diff --git a/spec/fixtures/record.json b/spec/fixtures/record.json new file mode 100644 index 0000000..cd6e3cb --- /dev/null +++ b/spec/fixtures/record.json @@ -0,0 +1,762 @@ +{ + "type": "item", + "id": "Q544", + "labels": { + "en": { + "language": "en", + "value": "John Elys deed (DS121)" + } + }, + "descriptions": { + "en": { + "language": "en", + "value": "Manuscript metadata collected by UPenn from University of Pennsylvania (9949945603503681, Oversize LJS 110)" + } + }, + "aliases": [], + "claims": { + "P10": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P10", + "hash": "46e4dcab853b717b02b6281ddd5f93ba714b281d", + "datavalue": { + "value": "John Elys deed", + "type": "string" + } + }, + "type": "statement", + "id": "Q544$22FCBBED-7DAD-4EBE-A590-FC1E32CC7F95", + "rank": "normal" + } + ], + "P14": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P14", + "hash": "1ca6263d1c4ecb518d467eab45dd604a375efec1", + "datavalue": { + "value": "Schoenberg, Lawrence J", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P15": [ + { + "snaktype": "value", + "property": "P15", + "hash": "63120b1e349365b8f15bbbe27edcb9ea07d676b0", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 21, + "id": "Q21" + }, + "type": "wikibase-entityid" + } + } + ], + "P17": [ + { + "snaktype": "value", + "property": "P17", + "hash": "5409c0609e3d036e4964abc513af899c8104e111", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 383, + "id": "Q383" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P15", + "P17" + ], + "id": "Q544$E4DFCFB3-1276-49A3-A28B-7122A269314E", + "rank": "normal" + } + ], + "P16": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P16", + "hash": "ce901170fc9ef71d185742e65083673f50c506bd", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 3, + "id": "Q3" + }, + "type": "wikibase-entityid" + } + }, + "type": "statement", + "id": "Q544$4010FCC8-45A4-4C85-9CDB-C4931F94368A", + "rank": "normal" + } + ], + "P18": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P18", + "hash": "5d0305c385cd9e771a33cf3346a87909c54f9733", + "datavalue": { + "value": "Deeds", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "454f8b2a1550d0acdef00508e9ac3488bcbe700d", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 283, + "id": "Q283" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$B974CC4D-4D42-47E2-8831-D687DDF3731A", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P18", + "hash": "155d41f27e8499eff2ef37a219b7a488961fd86a", + "datavalue": { + "value": "Indentures", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "3b9769942b552cce5bc69da33d594031ab707950", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 230, + "id": "Q230" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$629995BB-A390-411F-9AF0-B9B620542CA6", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P18", + "hash": "fe5a855daafb75e77844165930d246b9d96a9e34", + "datavalue": { + "value": "Legal documents", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "a832910721a0bf2168217134cf3b584199161a82", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 236, + "id": "Q236" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$F53152EE-E26A-4A0F-B191-59FF92D9D0CF", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P18", + "hash": "6bcffd1e7512fd477d23b42f7c7f44f748412d63", + "datavalue": { + "value": "Manuscripts, Latin", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "4632a078af466a0d6a017d480825f723577a5cee", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 210, + "id": "Q210" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$28277173-256B-45D7-9AE1-369EAD2756A9", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P18", + "hash": "0eda3f1d8b848a184b093324c1160d89fe3e8739", + "datavalue": { + "value": "Manuscripts, Medieval", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "3cc0c7bfa0dc6a3b0d57a7e5e0c4ca1c75d9210d", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 325, + "id": "Q325" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$8A4197C4-CED2-4FEE-8805-B5E3010A114C", + "rank": "normal" + } + ], + "P19": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P19", + "hash": "82789b83c9349d65fd5b7c5b754347cd2bb2a1a3", + "datavalue": { + "value": "Elys, John", + "type": "string" + } + }, + "type": "statement", + "id": "Q544$E2646AED-ACE3-4050-92A6-9B90EF45CA46", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P19", + "hash": "e0b27989aba8a037b9dc3fda042bfcff460f0f21", + "datavalue": { + "value": "Beeleye, John de", + "type": "string" + } + }, + "type": "statement", + "id": "Q544$932436EE-A82C-47B4-A552-7E1FB34DF7F4", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P19", + "hash": "77ef054f81d550e0e14f27cc51f72082d46906ba", + "datavalue": { + "value": "Beeleye, Margery de", + "type": "string" + } + }, + "type": "statement", + "id": "Q544$8FBC6BAF-EE64-4B40-BDCD-63762D063D97", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P19", + "hash": "df64bd63c4bce9726c00e795eef2b2e911b5e5ff", + "datavalue": { + "value": "Real property--England--Warwickshire", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "69196ea3b47c596138193514ebcef18ef97d8429", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 161, + "id": "Q161" + }, + "type": "wikibase-entityid" + } + }, + { + "snaktype": "value", + "property": "P20", + "hash": "2a4c91b0cea017f9946f82c1569abad378c1c927", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 320, + "id": "Q320" + }, + "type": "wikibase-entityid" + } + }, + { + "snaktype": "value", + "property": "P20", + "hash": "ac4b90c675fe49e34e271c704c77c81e6da46f58", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 228, + "id": "Q228" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$8C053308-C607-4513-BFF6-A8068FC64C23", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P19", + "hash": "f8101a402699cbefa09d491d818728a1c5b0cb9c", + "datavalue": { + "value": "Real property", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "69196ea3b47c596138193514ebcef18ef97d8429", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 161, + "id": "Q161" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$E05BF1C8-8CD6-4ED6-AF89-1A776D84F707", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P19", + "hash": "944d17ca67d493030040c6f6c8a4cddce6d2f2de", + "datavalue": { + "value": "Warwickshire (England)--History", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "ac4b90c675fe49e34e271c704c77c81e6da46f58", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 228, + "id": "Q228" + }, + "type": "wikibase-entityid" + } + }, + { + "snaktype": "value", + "property": "P20", + "hash": "fe7ac28ec54cbb2b63d0f2506a2702eeeeee57b5", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 279, + "id": "Q279" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$FBACE41D-706C-461D-B170-153BBDF60895", + "rank": "normal" + }, + { + "mainsnak": { + "snaktype": "value", + "property": "P19", + "hash": "71c0d0ba7795be22699b9558152aa07ce20d7fc4", + "datavalue": { + "value": "England--Warwickshire", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P20": [ + { + "snaktype": "value", + "property": "P20", + "hash": "ac4b90c675fe49e34e271c704c77c81e6da46f58", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 228, + "id": "Q228" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P20" + ], + "id": "Q544$AD7524EA-8127-4CF9-B1AD-9F58831B68FC", + "rank": "normal" + } + ], + "P21": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P21", + "hash": "9e246379b0dedebec12a4f1c930189c2cdc4935c", + "datavalue": { + "value": "In Latin", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P22": [ + { + "snaktype": "value", + "property": "P22", + "hash": "88fd34b9b826a66b754b3b2f0db4ca42932c4bb7", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 113, + "id": "Q113" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P22" + ], + "id": "Q544$07404B0B-82AB-474F-B702-9E14D552B287", + "rank": "normal" + } + ], + "P23": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P23", + "hash": "ff62be508403e913e71c078a14d32189f907eb0d", + "datavalue": { + "value": "1358.", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P25": [ + { + "snaktype": "value", + "property": "P25", + "hash": "d54951c1291e69356cc97ad03e0bcde559341150", + "datavalue": { + "value": { + "time": "+1301-01-01T00:00:00Z", + "timezone": 0, + "before": 0, + "after": 0, + "precision": 7, + "calendarmodel": "http://www.wikidata.org/entity/Q1985727" + }, + "type": "time" + } + } + ], + "P24": [ + { + "snaktype": "value", + "property": "P24", + "hash": "57245da66b5ff9bf14ad3bf993369c42aed464fe", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 96, + "id": "Q96" + }, + "type": "wikibase-entityid" + } + } + ], + "P37": [ + { + "snaktype": "value", + "property": "P37", + "hash": "ae23519105351987fb859d15b7e5c8e0234b33e8", + "datavalue": { + "value": { + "time": "+1358-01-01T00:00:00Z", + "timezone": 0, + "before": 0, + "after": 0, + "precision": 9, + "calendarmodel": "http://www.wikidata.org/entity/Q1985727" + }, + "type": "time" + } + } + ], + "P36": [ + { + "snaktype": "value", + "property": "P36", + "hash": "41250abd15b0162d8e22e20b929116a3a380b2fc", + "datavalue": { + "value": { + "time": "+1358-12-31T00:00:00Z", + "timezone": 0, + "before": 0, + "after": 0, + "precision": 9, + "calendarmodel": "http://www.wikidata.org/entity/Q1985727" + }, + "type": "time" + } + } + ] + }, + "qualifiers-order": [ + "P25", + "P24", + "P37", + "P36" + ], + "id": "Q544$868A931C-03C4-43DB-B6DB-FBB6A1ADD34C", + "rank": "normal" + } + ], + "P29": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P29", + "hash": "56dfa6a02340087275087fd53b8beb26dee8394e", + "datavalue": { + "value": "Extent: 1 parchment ; 170 x 245 mm.", + "type": "string" + } + }, + "type": "statement", + "id": "Q544$1C7B3A0B-8441-41D8-85D2-60B49F7E761A", + "rank": "normal" + } + ], + "P3": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P3", + "hash": "678b9e29e0e18a104eb1e755e205f2172b1ec9c8", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 543, + "id": "Q543" + }, + "type": "wikibase-entityid" + } + }, + "type": "statement", + "id": "Q544$AD25140B-4535-4D35-9F02-5542FB6514DE", + "rank": "normal" + } + ], + "P30": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P30", + "hash": "02646471404243a788eaf5d487266bf4bb5524fe", + "datavalue": { + "value": "parchment", + "type": "string" + } + }, + "type": "statement", + "qualifiers": { + "P31": [ + { + "snaktype": "value", + "property": "P31", + "hash": "a528e66d12b7aa9f75b302ead6fd3e1e4faf23bf", + "datavalue": { + "value": { + "entity-type": "item", + "numeric-id": 33, + "id": "Q33" + }, + "type": "wikibase-entityid" + } + } + ] + }, + "qualifiers-order": [ + "P31" + ], + "id": "Q544$A1CA52B3-A97A-4545-BBEC-DE5E6AC7DB6E", + "rank": "normal" + } + ], + "P34": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P34", + "hash": "f7753be3df0ca2dc886646cc80ff4568eb85b039", + "datavalue": { + "value": { + "time": "+2022-12-23T00:00:00Z", + "timezone": 0, + "before": 0, + "after": 0, + "precision": 11, + "calendarmodel": "http://www.wikidata.org/entity/Q1985727" + }, + "type": "time" + } + }, + "type": "statement", + "id": "Q544$F5F9A772-97A1-4C53-9BFB-D7B10EB4B8E0", + "rank": "normal" + } + ], + "P35": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P35", + "hash": "393d71ad41fd6c776cabc3a5e93064322e0abc18", + "datavalue": { + "value": { + "time": "+2022-12-23T00:00:00Z", + "timezone": 0, + "before": 0, + "after": 0, + "precision": 11, + "calendarmodel": "http://www.wikidata.org/entity/Q1985727" + }, + "type": "time" + } + }, + "type": "statement", + "id": "Q544$8384C69D-C409-4141-9ABF-77EAA4772ABE", + "rank": "normal" + } + ], + "P41": [ + { + "mainsnak": { + "snaktype": "value", + "property": "P41", + "hash": "8326dcd070f4904d2ffe5324b1cc3161a53c6b36", + "datavalue": { + "value": "https://colenda.library.upenn.edu/phalt/iiif/2/81431-p33p8v/manifest", + "type": "string" + } + }, + "type": "statement", + "id": "Q544$77CDD66C-1716-4A0F-8D84-37F91CE7A3C8", + "rank": "normal" + } + ] + }, + "sitelinks": [] +}