diff --git a/tests/conftest.py b/tests/conftest.py
index 36b5701..94386ff 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,8 +1,16 @@
"""Pytest fixtures for DCTap to SHACL conversion testing."""
+import csv
from pathlib import Path
from typing import Callable
+TEST_DIRECTORY = Path(__file__).parent
+
+
+def load_params(csv_name):
+ with open(TEST_DIRECTORY / csv_name) as f:
+ return [(row[0], int(row[1]), int(row[2])) for row in csv.reader(f) if row[0] != "rdf_file_path"]
+
import pytest
from dctap2shacl import DCTap2SHACLTransformer
from rdflib import Graph
diff --git a/tests/monograph_admin_metadata.csv b/tests/monograph_admin_metadata.csv
new file mode 100644
index 0000000..ef93659
--- /dev/null
+++ b/tests/monograph_admin_metadata.csv
@@ -0,0 +1,181 @@
+rdf_file_path,violations,warnings
+loc/monograph/12516952.cbd.rdf,24,0
+loc/monograph/22932823.cbd.rdf,16,0
+loc/monograph/23703536.cbd.rdf,16,0
+loc/monograph/22483233.cbd.rdf,16,0
+loc/monograph/23694998.cbd.rdf,16,0
+oclc/books/1099831598.ttl,0,0
+oclc/books/1141769984.ttl,0,0
+oclc/books/1141777830.ttl,0,0
+oclc/books/1141980438.ttl,0,0
+oclc/books/1142316735.ttl,0,0
+oclc/books/1142333230.ttl,0,0
+oclc/books/1142340987.ttl,0,0
+oclc/books/1142386711.ttl,0,0
+oclc/books/1191224000.ttl,0,0
+oclc/books/1194651003.ttl,0,0
+oclc/books/1194655177.ttl,0,0
+oclc/books/1194655273.ttl,0,0
+oclc/books/1194656958.ttl,0,0
+oclc/books/1227244250.ttl,0,0
+oclc/books/1353778098.ttl,0,0
+oclc/books/1356823476.ttl,0,0
+oclc/books/1356938658.ttl,0,0
+oclc/books/1357034932.ttl,0,0
+oclc/books/1357115663.ttl,0,0
+oclc/books/1362896497.ttl,0,0
+oclc/books/1365062372.ttl,0,0
+oclc/books/1365395171.ttl,0,0
+oclc/books/1366106737.ttl,0,0
+oclc/books/1369071747.ttl,0,0
+oclc/books/1369582776.ttl,0,0
+oclc/books/1369590405.ttl,0,0
+oclc/books/1369592893.ttl,0,0
+oclc/books/1369928830.ttl,0,0
+oclc/books/1371467167.ttl,0,0
+oclc/books/1371509240.ttl,0,0
+oclc/books/1371928422.ttl,0,0
+oclc/books/1372299738.ttl,0,0
+oclc/books/1372588097.ttl,0,0
+oclc/books/1373302830.ttl,0,0
+oclc/books/1373630904.ttl,0,0
+oclc/books/1375057780.ttl,0,0
+oclc/books/1375187814.ttl,0,0
+oclc/books/1377311435.ttl,0,0
+oclc/books/1377740876.ttl,0,0
+oclc/books/1378025833.ttl,0,0
+oclc/books/1378027231.ttl,0,0
+oclc/books/1378035821.ttl,0,0
+oclc/books/1378509375.ttl,0,0
+oclc/books/1378643457.ttl,0,0
+oclc/books/1378908322.ttl,0,0
+oclc/books/1379362047.ttl,0,0
+oclc/books/1381120040.ttl,0,0
+oclc/books/1381209021.ttl,0,0
+oclc/books/1381545178.ttl,0,0
+oclc/books/1381815658.ttl,0,0
+oclc/books/1382427617.ttl,0,0
+oclc/books/1385176175.ttl,0,0
+oclc/books/1388672646.ttl,0,0
+oclc/books/1388673517.ttl,0,0
+oclc/books/1388675089.ttl,0,0
+oclc/books/1388675887.ttl,0,0
+oclc/books/1388676300.ttl,0,0
+oclc/books/1389887530.ttl,0,0
+oclc/books/1390097033.ttl,0,0
+oclc/books/1390747013.ttl,0,0
+oclc/books/1390761214.ttl,0,0
+oclc/books/1390761353.ttl,0,0
+oclc/books/1390770521.ttl,0,0
+oclc/books/1390770662.ttl,0,0
+oclc/books/1390770815.ttl,0,0
+oclc/books/1390770941.ttl,0,0
+oclc/books/1390771242.ttl,0,0
+oclc/books/1390771417.ttl,0,0
+oclc/books/1390807293.ttl,0,0
+oclc/books/1391116411.ttl,0,0
+oclc/books/1391156137.ttl,0,0
+oclc/books/1391542740.ttl,0,0
+oclc/books/1392000883.ttl,0,0
+oclc/books/1393107481.ttl,0,0
+oclc/books/1393205249.ttl,0,0
+oclc/books/1393324126.ttl,0,0
+oclc/books/1393443473.ttl,0,0
+oclc/books/1393686851.ttl,0,0
+oclc/books/1394001169.ttl,0,0
+oclc/books/1395527793.ttl,0,0
+oclc/books/1395883076.ttl,0,0
+oclc/books/1396143441.ttl,0,0
+oclc/books/1396770235.ttl,0,0
+oclc/books/1396775786.ttl,0,0
+oclc/books/1398015992.ttl,0,0
+oclc/books/1398493405.ttl,0,0
+oclc/books/1400038974.ttl,0,0
+oclc/books/1400105501.ttl,0,0
+oclc/books/1401023867.ttl,0,0
+oclc/books/1401833850.ttl,0,0
+oclc/books/1401987277.ttl,0,0
+oclc/books/1401990618.ttl,0,0
+oclc/books/1405842356.ttl,0,0
+oclc/books/1406595183.ttl,0,0
+oclc/books/1407121710.ttl,0,0
+oclc/books/1409477699.ttl,0,0
+oclc/books/1410551186.ttl,0,0
+oclc/books/1411546304.ttl,0,0
+oclc/books/1412120120.ttl,0,0
+oclc/books/1415630654.ttl,0,0
+oclc/books/1416378962.ttl,0,0
+oclc/books/1417008529.ttl,0,0
+oclc/books/1417353742.ttl,0,0
+oclc/books/1417432126.ttl,0,0
+oclc/books/1418764919.ttl,0,0
+oclc/books/1419160101.ttl,0,0
+oclc/books/1419915266.ttl,0,0
+oclc/books/1420704426.ttl,0,0
+oclc/books/1421955020.ttl,0,0
+oclc/books/1422166602.ttl,0,0
+oclc/books/1424817499.ttl,0,0
+oclc/books/1425977879.ttl,0,0
+oclc/books/1428172864.ttl,0,0
+oclc/books/1428177414.ttl,0,0
+oclc/books/1428308816.ttl,0,0
+oclc/books/1428968662.ttl,0,0
+oclc/books/1429904838.ttl,0,0
+oclc/books/1430349999.ttl,0,0
+oclc/books/1430564852.ttl,0,0
+oclc/books/1430997602.ttl,0,0
+oclc/books/1431007440.ttl,0,0
+oclc/books/1431007495.ttl,0,0
+oclc/books/1431126136.ttl,0,0
+oclc/books/1432447538.ttl,0,0
+oclc/books/1432498081.ttl,0,0
+oclc/books/1432726613.ttl,0,0
+oclc/books/1433659447.ttl,0,0
+oclc/books/1435141883.ttl,0,0
+oclc/books/1435895782.ttl,0,0
+oclc/books/1440097661.ttl,0,0
+oclc/books/1443005542.ttl,0,0
+oclc/books/1444114186.ttl,0,0
+oclc/books/1446381518.ttl,0,0
+oclc/books/1450559869.ttl,0,0
+oclc/books/1452345627.ttl,0,0
+oclc/books/1452348529.ttl,0,0
+oclc/books/1452460839.ttl,0,0
+oclc/books/1454622085.ttl,0,0
+oclc/books/1454638529.ttl,0,0
+oclc/books/1454640888.ttl,0,0
+oclc/books/1454649329.ttl,0,0
+oclc/books/1454653206.ttl,0,0
+oclc/books/1454655373.ttl,0,0
+oclc/books/1454675693.ttl,0,0
+oclc/books/1454679841.ttl,0,0
+oclc/books/1454681157.ttl,0,0
+oclc/books/1455589062.ttl,0,0
+oclc/books/1455905353.ttl,0,0
+oclc/books/1456042868.ttl,0,0
+oclc/books/1456140561.ttl,0,0
+oclc/books/1456370889.ttl,0,0
+oclc/books/1456592756.ttl,0,0
+oclc/books/1456832939.ttl,0,0
+oclc/books/1457106799.ttl,0,0
+oclc/books/1457201032.ttl,0,0
+oclc/books/1460842152.ttl,0,0
+oclc/books/1466145318.ttl,0,0
+oclc/books/1466951403.ttl,0,0
+oclc/books/1467010737.ttl,0,0
+oclc/books/1467010884.ttl,0,0
+oclc/books/1467024642.ttl,0,0
+oclc/books/1467197246.ttl,0,0
+oclc/books/1468098192.ttl,0,0
+oclc/books/1472772154.ttl,0,0
+oclc/books/1472987434.ttl,0,0
+oclc/books/1472989443.ttl,0,0
+oclc/books/1473831777.ttl,0,0
+oclc/books/1477838956.ttl,0,0
+oclc/books/1477929350.ttl,0,0
+oclc/books/1478010137.ttl,0,0
+oclc/books/1478200660.ttl,0,0
+oclc/books/1479740405.ttl,0,0
+oclc/books/1485121646.ttl,0,0
+oclc/books/1485639847.ttl,0,0
+oclc/books/1501138095.ttl,0,0
diff --git a/tests/monograph_print_instances.csv b/tests/monograph_print_instances.csv
new file mode 100644
index 0000000..9b1abef
--- /dev/null
+++ b/tests/monograph_print_instances.csv
@@ -0,0 +1,181 @@
+rdf_file_path,violations,warnings
+loc/monograph/12516952.cbd.rdf,3,1
+loc/monograph/22932823.cbd.rdf,2,1
+loc/monograph/23703536.cbd.rdf,0,1
+loc/monograph/22483233.cbd.rdf,0,1
+loc/monograph/23694998.cbd.rdf,0,1
+oclc/books/1099831598.ttl,0,46
+oclc/books/1141769984.ttl,0,37
+oclc/books/1141777830.ttl,0,40
+oclc/books/1141980438.ttl,0,61
+oclc/books/1142316735.ttl,0,20
+oclc/books/1142333230.ttl,0,37
+oclc/books/1142340987.ttl,0,48
+oclc/books/1142386711.ttl,0,54
+oclc/books/1191224000.ttl,0,25
+oclc/books/1194651003.ttl,0,24
+oclc/books/1194655177.ttl,0,27
+oclc/books/1194655273.ttl,0,34
+oclc/books/1194656958.ttl,0,27
+oclc/books/1227244250.ttl,0,41
+oclc/books/1353778098.ttl,0,30
+oclc/books/1356823476.ttl,0,22
+oclc/books/1356938658.ttl,0,34
+oclc/books/1357034932.ttl,0,11
+oclc/books/1357115663.ttl,0,23
+oclc/books/1362896497.ttl,0,27
+oclc/books/1365062372.ttl,0,36
+oclc/books/1365395171.ttl,0,31
+oclc/books/1366106737.ttl,0,26
+oclc/books/1369071747.ttl,0,8
+oclc/books/1369582776.ttl,0,12
+oclc/books/1369590405.ttl,0,13
+oclc/books/1369592893.ttl,0,13
+oclc/books/1369928830.ttl,0,13
+oclc/books/1371467167.ttl,0,34
+oclc/books/1371509240.ttl,0,26
+oclc/books/1371928422.ttl,0,17
+oclc/books/1372299738.ttl,0,33
+oclc/books/1372588097.ttl,0,21
+oclc/books/1373302830.ttl,0,11
+oclc/books/1373630904.ttl,0,20
+oclc/books/1375057780.ttl,0,23
+oclc/books/1375187814.ttl,0,33
+oclc/books/1377311435.ttl,0,39
+oclc/books/1377740876.ttl,0,11
+oclc/books/1378025833.ttl,0,23
+oclc/books/1378027231.ttl,0,28
+oclc/books/1378035821.ttl,0,33
+oclc/books/1378509375.ttl,0,32
+oclc/books/1378643457.ttl,0,27
+oclc/books/1378908322.ttl,0,12
+oclc/books/1379362047.ttl,0,23
+oclc/books/1381120040.ttl,0,28
+oclc/books/1381209021.ttl,0,61
+oclc/books/1381545178.ttl,0,44
+oclc/books/1381815658.ttl,0,18
+oclc/books/1382427617.ttl,0,9
+oclc/books/1385176175.ttl,0,26
+oclc/books/1388672646.ttl,0,7
+oclc/books/1388673517.ttl,0,9
+oclc/books/1388675089.ttl,0,8
+oclc/books/1388675887.ttl,0,10
+oclc/books/1388676300.ttl,0,10
+oclc/books/1389887530.ttl,0,16
+oclc/books/1390097033.ttl,0,33
+oclc/books/1390747013.ttl,0,22
+oclc/books/1390761214.ttl,0,22
+oclc/books/1390761353.ttl,0,10
+oclc/books/1390770521.ttl,0,13
+oclc/books/1390770662.ttl,0,11
+oclc/books/1390770815.ttl,0,16
+oclc/books/1390770941.ttl,0,12
+oclc/books/1390771242.ttl,0,15
+oclc/books/1390771417.ttl,0,6
+oclc/books/1390807293.ttl,0,24
+oclc/books/1391116411.ttl,0,33
+oclc/books/1391156137.ttl,0,33
+oclc/books/1391542740.ttl,0,19
+oclc/books/1392000883.ttl,0,11
+oclc/books/1393107481.ttl,0,31
+oclc/books/1393205249.ttl,0,39
+oclc/books/1393324126.ttl,0,16
+oclc/books/1393443473.ttl,0,13
+oclc/books/1393686851.ttl,0,11
+oclc/books/1394001169.ttl,0,14
+oclc/books/1395527793.ttl,0,11
+oclc/books/1395883076.ttl,0,15
+oclc/books/1396143441.ttl,0,33
+oclc/books/1396770235.ttl,0,8
+oclc/books/1396775786.ttl,0,14
+oclc/books/1398015992.ttl,0,14
+oclc/books/1398493405.ttl,0,42
+oclc/books/1400038974.ttl,0,9
+oclc/books/1400105501.ttl,0,30
+oclc/books/1401023867.ttl,0,14
+oclc/books/1401833850.ttl,0,11
+oclc/books/1401987277.ttl,0,44
+oclc/books/1401990618.ttl,0,16
+oclc/books/1405842356.ttl,0,18
+oclc/books/1406595183.ttl,0,27
+oclc/books/1407121710.ttl,0,59
+oclc/books/1409477699.ttl,0,17
+oclc/books/1410551186.ttl,0,10
+oclc/books/1411546304.ttl,0,25
+oclc/books/1412120120.ttl,0,25
+oclc/books/1415630654.ttl,0,67
+oclc/books/1416378962.ttl,0,17
+oclc/books/1417008529.ttl,0,12
+oclc/books/1417353742.ttl,0,11
+oclc/books/1417432126.ttl,0,8
+oclc/books/1418764919.ttl,0,18
+oclc/books/1419160101.ttl,0,14
+oclc/books/1419915266.ttl,0,20
+oclc/books/1420704426.ttl,0,6
+oclc/books/1421955020.ttl,0,21
+oclc/books/1422166602.ttl,0,14
+oclc/books/1424817499.ttl,0,8
+oclc/books/1425977879.ttl,0,10
+oclc/books/1428172864.ttl,0,55
+oclc/books/1428177414.ttl,0,35
+oclc/books/1428308816.ttl,0,17
+oclc/books/1428968662.ttl,0,12
+oclc/books/1429904838.ttl,0,60
+oclc/books/1430349999.ttl,0,14
+oclc/books/1430564852.ttl,0,17
+oclc/books/1430997602.ttl,0,23
+oclc/books/1431007440.ttl,0,35
+oclc/books/1431007495.ttl,0,25
+oclc/books/1431126136.ttl,0,24
+oclc/books/1432447538.ttl,0,26
+oclc/books/1432498081.ttl,0,19
+oclc/books/1432726613.ttl,0,49
+oclc/books/1433659447.ttl,0,12
+oclc/books/1435141883.ttl,0,22
+oclc/books/1435895782.ttl,0,18
+oclc/books/1440097661.ttl,0,17
+oclc/books/1443005542.ttl,0,30
+oclc/books/1444114186.ttl,0,10
+oclc/books/1446381518.ttl,0,23
+oclc/books/1450559869.ttl,0,13
+oclc/books/1452345627.ttl,0,21
+oclc/books/1452348529.ttl,0,26
+oclc/books/1452460839.ttl,0,24
+oclc/books/1454622085.ttl,0,6
+oclc/books/1454638529.ttl,0,6
+oclc/books/1454640888.ttl,0,5
+oclc/books/1454649329.ttl,0,7
+oclc/books/1454653206.ttl,0,6
+oclc/books/1454655373.ttl,0,5
+oclc/books/1454675693.ttl,0,5
+oclc/books/1454679841.ttl,0,6
+oclc/books/1454681157.ttl,0,6
+oclc/books/1455589062.ttl,0,6
+oclc/books/1455905353.ttl,0,5
+oclc/books/1456042868.ttl,0,11
+oclc/books/1456140561.ttl,0,35
+oclc/books/1456370889.ttl,0,12
+oclc/books/1456592756.ttl,0,18
+oclc/books/1456832939.ttl,0,15
+oclc/books/1457106799.ttl,0,20
+oclc/books/1457201032.ttl,0,6
+oclc/books/1460842152.ttl,0,30
+oclc/books/1466145318.ttl,0,24
+oclc/books/1466951403.ttl,0,29
+oclc/books/1467010737.ttl,0,15
+oclc/books/1467010884.ttl,0,15
+oclc/books/1467024642.ttl,0,6
+oclc/books/1467197246.ttl,0,26
+oclc/books/1468098192.ttl,0,36
+oclc/books/1472772154.ttl,0,10
+oclc/books/1472987434.ttl,0,19
+oclc/books/1472989443.ttl,0,34
+oclc/books/1473831777.ttl,0,27
+oclc/books/1477838956.ttl,0,21
+oclc/books/1477929350.ttl,0,15
+oclc/books/1478010137.ttl,0,41
+oclc/books/1478200660.ttl,0,39
+oclc/books/1479740405.ttl,0,21
+oclc/books/1485121646.ttl,0,19
+oclc/books/1485639847.ttl,0,17
+oclc/books/1501138095.ttl,0,5
diff --git a/tests/monograph_text_works.csv b/tests/monograph_text_works.csv
new file mode 100644
index 0000000..0dd35e2
--- /dev/null
+++ b/tests/monograph_text_works.csv
@@ -0,0 +1,181 @@
+rdf_file_path,violations,warnings
+loc/monograph/12516952.cbd.rdf,5,2
+loc/monograph/22932823.cbd.rdf,6,2
+loc/monograph/23703536.cbd.rdf,0,3
+loc/monograph/22483233.cbd.rdf,0,3
+loc/monograph/23694998.cbd.rdf,0,3
+oclc/books/1099831598.ttl,1,45
+oclc/books/1141769984.ttl,1,36
+oclc/books/1141777830.ttl,1,40
+oclc/books/1141980438.ttl,1,60
+oclc/books/1142316735.ttl,1,19
+oclc/books/1142333230.ttl,1,36
+oclc/books/1142340987.ttl,1,47
+oclc/books/1142386711.ttl,1,53
+oclc/books/1191224000.ttl,1,24
+oclc/books/1194651003.ttl,1,30
+oclc/books/1194655177.ttl,1,39
+oclc/books/1194655273.ttl,1,43
+oclc/books/1194656958.ttl,1,26
+oclc/books/1227244250.ttl,1,40
+oclc/books/1353778098.ttl,1,30
+oclc/books/1356823476.ttl,1,22
+oclc/books/1356938658.ttl,1,34
+oclc/books/1357034932.ttl,2,14
+oclc/books/1357115663.ttl,1,24
+oclc/books/1362896497.ttl,1,34
+oclc/books/1365062372.ttl,1,32
+oclc/books/1365395171.ttl,1,28
+oclc/books/1366106737.ttl,1,28
+oclc/books/1369071747.ttl,1,15
+oclc/books/1369582776.ttl,1,13
+oclc/books/1369590405.ttl,1,14
+oclc/books/1369592893.ttl,1,14
+oclc/books/1369928830.ttl,1,14
+oclc/books/1371467167.ttl,1,33
+oclc/books/1371509240.ttl,1,31
+oclc/books/1371928422.ttl,1,19
+oclc/books/1372299738.ttl,1,29
+oclc/books/1372588097.ttl,1,21
+oclc/books/1373302830.ttl,1,25
+oclc/books/1373630904.ttl,1,19
+oclc/books/1375057780.ttl,1,22
+oclc/books/1375187814.ttl,1,32
+oclc/books/1377311435.ttl,1,50
+oclc/books/1377740876.ttl,1,17
+oclc/books/1378025833.ttl,1,26
+oclc/books/1378027231.ttl,2,34
+oclc/books/1378035821.ttl,1,33
+oclc/books/1378509375.ttl,1,29
+oclc/books/1378643457.ttl,1,26
+oclc/books/1378908322.ttl,1,18
+oclc/books/1379362047.ttl,1,25
+oclc/books/1381120040.ttl,1,28
+oclc/books/1381209021.ttl,1,60
+oclc/books/1381545178.ttl,1,41
+oclc/books/1381815658.ttl,1,18
+oclc/books/1382427617.ttl,1,14
+oclc/books/1385176175.ttl,1,26
+oclc/books/1388672646.ttl,2,11
+oclc/books/1388673517.ttl,2,13
+oclc/books/1388675089.ttl,1,17
+oclc/books/1388675887.ttl,1,16
+oclc/books/1388676300.ttl,2,19
+oclc/books/1389887530.ttl,1,15
+oclc/books/1390097033.ttl,1,33
+oclc/books/1390747013.ttl,1,24
+oclc/books/1390761214.ttl,1,21
+oclc/books/1390761353.ttl,1,10
+oclc/books/1390770521.ttl,1,13
+oclc/books/1390770662.ttl,1,11
+oclc/books/1390770815.ttl,1,16
+oclc/books/1390770941.ttl,1,12
+oclc/books/1390771242.ttl,1,15
+oclc/books/1390771417.ttl,1,6
+oclc/books/1390807293.ttl,1,23
+oclc/books/1391116411.ttl,1,33
+oclc/books/1391156137.ttl,1,33
+oclc/books/1391542740.ttl,1,24
+oclc/books/1392000883.ttl,1,17
+oclc/books/1393107481.ttl,1,30
+oclc/books/1393205249.ttl,1,39
+oclc/books/1393324126.ttl,1,18
+oclc/books/1393443473.ttl,2,23
+oclc/books/1393686851.ttl,1,26
+oclc/books/1394001169.ttl,1,14
+oclc/books/1395527793.ttl,1,17
+oclc/books/1395883076.ttl,1,15
+oclc/books/1396143441.ttl,1,29
+oclc/books/1396770235.ttl,1,8
+oclc/books/1396775786.ttl,1,19
+oclc/books/1398015992.ttl,1,13
+oclc/books/1398493405.ttl,1,41
+oclc/books/1400038974.ttl,1,9
+oclc/books/1400105501.ttl,1,30
+oclc/books/1401023867.ttl,1,15
+oclc/books/1401833850.ttl,2,14
+oclc/books/1401987277.ttl,1,43
+oclc/books/1401990618.ttl,1,15
+oclc/books/1405842356.ttl,1,18
+oclc/books/1406595183.ttl,1,28
+oclc/books/1407121710.ttl,1,59
+oclc/books/1409477699.ttl,1,17
+oclc/books/1410551186.ttl,1,16
+oclc/books/1411546304.ttl,1,25
+oclc/books/1412120120.ttl,1,20
+oclc/books/1415630654.ttl,1,66
+oclc/books/1416378962.ttl,1,22
+oclc/books/1417008529.ttl,1,12
+oclc/books/1417353742.ttl,1,12
+oclc/books/1417432126.ttl,2,14
+oclc/books/1418764919.ttl,1,18
+oclc/books/1419160101.ttl,1,14
+oclc/books/1419915266.ttl,1,20
+oclc/books/1420704426.ttl,1,8
+oclc/books/1421955020.ttl,1,22
+oclc/books/1422166602.ttl,1,14
+oclc/books/1424817499.ttl,2,12
+oclc/books/1425977879.ttl,1,10
+oclc/books/1428172864.ttl,1,55
+oclc/books/1428177414.ttl,1,32
+oclc/books/1428308816.ttl,1,17
+oclc/books/1428968662.ttl,1,12
+oclc/books/1429904838.ttl,1,59
+oclc/books/1430349999.ttl,1,14
+oclc/books/1430564852.ttl,1,18
+oclc/books/1430997602.ttl,1,23
+oclc/books/1431007440.ttl,1,37
+oclc/books/1431007495.ttl,1,34
+oclc/books/1431126136.ttl,1,26
+oclc/books/1432447538.ttl,1,25
+oclc/books/1432498081.ttl,1,18
+oclc/books/1432726613.ttl,1,48
+oclc/books/1433659447.ttl,1,11
+oclc/books/1435141883.ttl,1,21
+oclc/books/1435895782.ttl,1,17
+oclc/books/1440097661.ttl,1,21
+oclc/books/1443005542.ttl,1,35
+oclc/books/1444114186.ttl,1,10
+oclc/books/1446381518.ttl,1,24
+oclc/books/1450559869.ttl,1,13
+oclc/books/1452345627.ttl,1,20
+oclc/books/1452348529.ttl,1,25
+oclc/books/1452460839.ttl,1,24
+oclc/books/1454622085.ttl,2,10
+oclc/books/1454638529.ttl,2,16
+oclc/books/1454640888.ttl,2,10
+oclc/books/1454649329.ttl,2,16
+oclc/books/1454653206.ttl,2,10
+oclc/books/1454655373.ttl,2,16
+oclc/books/1454675693.ttl,2,16
+oclc/books/1454679841.ttl,2,19
+oclc/books/1454681157.ttl,2,8
+oclc/books/1455589062.ttl,2,13
+oclc/books/1455905353.ttl,1,7
+oclc/books/1456042868.ttl,1,28
+oclc/books/1456140561.ttl,1,35
+oclc/books/1456370889.ttl,1,13
+oclc/books/1456592756.ttl,1,21
+oclc/books/1456832939.ttl,1,17
+oclc/books/1457106799.ttl,1,20
+oclc/books/1457201032.ttl,2,25
+oclc/books/1460842152.ttl,1,44
+oclc/books/1466145318.ttl,1,25
+oclc/books/1466951403.ttl,1,28
+oclc/books/1467010737.ttl,1,14
+oclc/books/1467010884.ttl,1,14
+oclc/books/1467024642.ttl,2,13
+oclc/books/1467197246.ttl,1,25
+oclc/books/1468098192.ttl,1,46
+oclc/books/1472772154.ttl,1,11
+oclc/books/1472987434.ttl,1,19
+oclc/books/1472989443.ttl,1,28
+oclc/books/1473831777.ttl,1,26
+oclc/books/1477838956.ttl,1,19
+oclc/books/1477929350.ttl,1,14
+oclc/books/1478010137.ttl,1,39
+oclc/books/1478200660.ttl,1,33
+oclc/books/1479740405.ttl,1,22
+oclc/books/1485121646.ttl,1,19
+oclc/books/1485639847.ttl,1,22
+oclc/books/1501138095.ttl,1,7
diff --git a/tests/oclc/books/1099831598.ttl b/tests/oclc/books/1099831598.ttl
new file mode 100644
index 0000000..25ed33f
--- /dev/null
+++ b/tests/oclc/books/1099831598.ttl
@@ -0,0 +1,481 @@
+@prefix bf: .
+@prefix bflc: .
+@prefix madsrdf: .
+@prefix oclcbf: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+
+ a bf:DescriptionConventions ;
+ rdfs:label "ISBD: International standard bibliographic description"@en ;
+ bf:code "isbd" .
+
+ a bf:DescriptionConventions ;
+ bf:code "rda" .
+
+ a bf:Source ;
+ bf:code "rdacarrier" .
+
+ a bf:Source ;
+ bf:code "rdacontent" .
+
+ a bf:Source ;
+ bf:code "rdamedia" .
+
+ a bf:DescriptionAuthentication ;
+ bf:code "lccopycat" .
+
+ a bflc:EncodingLevel ;
+ rdfs:label "full"@en ;
+ bf:code "f" .
+
+ a bf:Status ;
+ rdfs:label "changed"@en .
+
+ a bf:Status ;
+ rdfs:label "canceled or invalid"@en .
+
+ a bf:Status ;
+ rdfs:label "used by assigner" ;
+ bf:code "uba" .
+
+ a bf:SupplementaryContent ;
+ rdfs:label "bibliography"@en ;
+ bf:code "bibliography" .
+
+ a bf:Source ;
+ bf:code "bnb" .
+
+ a bf:Relationship ;
+ rdfs:label "other physical format"@en .
+
+ a bf:Source ;
+ bf:code "bisacsh" .
+
+ a bf:Source ;
+ bf:code "eflch" .
+
+ a bf:Source ;
+ bf:code "ukslc" .
+
+ a bf:AdminMetadata,
+ oclcbf:Record ;
+ bflc:encodingLevel ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "YDX" ] ;
+ bf:changeDate "20250802202656.6" ;
+ bf:creationDate "20230223" ;
+ bf:descriptionAuthentication ;
+ bf:descriptionConventions ,
+ ;
+ bf:descriptionLanguage ;
+ bf:descriptionModifier [ a bf:Organization ;
+ bf:code "OCLCO" ],
+ [ a bf:Organization ;
+ bf:code "YDX" ],
+ [ a bf:Organization ;
+ bf:code "UKMGB" ],
+ [ a bf:Organization ;
+ bf:code "YDXIT" ],
+ [ a bf:Organization ;
+ bf:code "UKNYK" ],
+ [ a bf:Organization ;
+ bf:code "OCLCF" ],
+ [ a bf:Organization ;
+ bf:code "TOH" ],
+ [ a bf:Organization ;
+ bf:code "OCLCL" ],
+ [ a bf:Organization ;
+ bf:code "SINLB" ],
+ [ a bf:Organization ;
+ bf:code "NZAUC" ],
+ [ a bf:Organization ;
+ bf:code "OCLCO" ],
+ [ a bf:Organization ;
+ bf:code "IG#" ] ;
+ bf:language ;
+ bf:note [ a bf:Note,
+ ;
+ rdfs:label "040 $a YDX $b eng $c DLC $d YDX $d UKMGB $d TOH $d OCLCF $d SINLB $d YDXIT $d NZAUC $d OCLCO $d UKNYK $d OCLCO $d IG# $d OCLCL" ] ;
+ bf:status ;
+ oclcbf:mainEntity ;
+ oclcbf:transcriber [ a bf:Organization ;
+ bf:code "DLC" ;
+ skos:closeMatch ] .
+
+ a bf:Monograph,
+ bf:Text,
+ bf:Work,
+ ;
+ bflc:governmentPubType [ a bflc:GovernmentPubType ;
+ rdfs:label ""@en ] ;
+ bf:classification [ a bf:ClassificationLcc ;
+ bf:assigner ;
+ bf:classificationPortion "B105.F66" ;
+ bf:itemPortion "B3713 2019" ;
+ bf:status ],
+ [ a bf:ClassificationDdc ;
+ bf:classificationPortion "394.12" ;
+ bf:edition "full" ;
+ bf:source [ a bf:Source ;
+ bf:code "23" ] ;
+ skos:relatedMatch ],
+ [ a bf:ClassificationDdc ;
+ bf:classificationPortion "177/.1" ;
+ bf:edition "full" ;
+ bf:source [ a bf:Source ;
+ bf:code "23" ] ;
+ skos:relatedMatch ] ;
+ bf:content [ a bf:Content ;
+ rdfs:label "text"@en ;
+ bf:code "txt" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:contribution [ a bf:PrimaryContribution ;
+ bflc:marcKey "100 1 $a Basil, Priya, $d 1977- $e author. $1 https://id.oclc.org/worldcat/entity/E39PBJhH3Qk6YQYyD8q98HYVmd" ;
+ bf:agent ;
+ bf:role [ a bf:Role ;
+ rdfs:label "author." ] ] ;
+ bf:expressionOf [ a bf:Work ;
+ rdfs:label "Gastfreundschaft. English" ;
+ bflc:marcKey "240 10 $a Gastfreundschaft. $l English" ;
+ bf:contribution [ a bf:PrimaryContribution ;
+ bf:agent ;
+ bf:role [ a bf:Role ;
+ rdfs:label "author." ] ] ;
+ bf:language [ a bf:Language ;
+ rdfs:label "English" ] ;
+ bf:title [ a bf:Title ;
+ bflc:nonSortNum "0" ;
+ bf:mainTitle "Gastfreundschaft." ] ] ;
+ bf:genreForm [ a bf:GenreForm ;
+ rdfs:label "Cross-cultural studies" ;
+ bflc:marcKey "655 7 $a Cross-cultural studies $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01423769" ] ;
+ bf:source ] ;
+ bf:hasInstance ;
+ bf:language ;
+ bf:relation [ a bf:Relation ;
+ bf:associatedResource [ a bf:Work ;
+ bf:hasInstance [ a bf:Instance ;
+ bf:identifiedBy [ a bf:Isbn ;
+ rdf:value "9781786898500" ] ] ] ;
+ bf:relationship [ a bf:Relationship ;
+ rdfs:label "Ebook version :"@en ],
+ ] ;
+ bf:subject [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Food Philosophy." ;
+ bflc:marcKey "650 0 $a Food $x Philosophy." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Food" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2003164" ] ] [ a bf:Topic ;
+ rdfs:label "Philosophy." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca5155910" ] ] ) ],
+ [ a bf:Topic ;
+ rdfs:label "Food and Drink." ;
+ bflc:marcKey "650 7 $a Food and Drink. $2 eflch" ;
+ bf:source ],
+ [ a bf:Topic ;
+ rdfs:label "Hospitality" ;
+ bflc:marcKey "650 7 $a Hospitality $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst00961114" ] ;
+ bf:source ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Food habits Social aspects" ;
+ bflc:marcKey "650 7 $a Food habits $x Social aspects $2 fast" ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Food habits" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst00930819" ] ] [ a bf:Topic ;
+ rdfs:label "Social aspects" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst00930819" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Food habits Social aspects." ;
+ bflc:marcKey "650 0 $a Food habits $x Social aspects." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Food habits" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2003443" ] ] [ a bf:Topic ;
+ rdfs:label "Social aspects." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca5180379" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Habitudes alimentaires Aspect social." ;
+ bflc:marcKey "650 6 $a Habitudes alimentaires $x Aspect social." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Habitudes alimentaires" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0005668" ] ] [ a bf:Topic ;
+ rdfs:label "Aspect social." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0374080" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "SOCIAL SCIENCE Customs & Traditions." ;
+ bflc:marcKey "650 7 $a SOCIAL SCIENCE $x Customs & Traditions. $2 bisacsh" ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "SOCIAL SCIENCE" ] [ a bf:Topic ;
+ rdfs:label "Customs & Traditions." ] ) ],
+ [ a bf:Topic ;
+ rdfs:label "Hospitality." ;
+ bflc:marcKey "650 0 $a Hospitality." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2083974" ] ;
+ bf:source ],
+ [ a bf:Topic ;
+ rdfs:label "Food and Drink." ;
+ bflc:marcKey "650 7 $a Food and Drink. $2 ukslc" ;
+ bf:source ],
+ [ a bf:Topic ;
+ rdfs:label "Hospitalité." ;
+ bflc:marcKey "650 6 $a Hospitalité." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0094230" ] ;
+ bf:source ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Habitudes alimentaires Aspect social Études transculturelles." ;
+ bflc:marcKey "650 6 $a Habitudes alimentaires $x Aspect social $v Études transculturelles." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Habitudes alimentaires" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0005668" ] ] [ a bf:Topic ;
+ rdfs:label "Aspect social" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0374080" ] ] [ a bf:GenreForm ;
+ rdfs:label "Études transculturelles." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0384543" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Aliments Philosophie." ;
+ bflc:marcKey "650 6 $a Aliments $x Philosophie." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Aliments" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0001973" ] ] [ a bf:Topic ;
+ rdfs:label "Philosophie." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0380041" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Food Philosophy" ;
+ bflc:marcKey "650 7 $a Food $x Philosophy $2 fast" ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Food" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst00930564" ] ] [ a bf:Topic ;
+ rdfs:label "Philosophy" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst00930564" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Hospitality Cross-cultural studies." ;
+ bflc:marcKey "650 0 $a Hospitality $v Cross-cultural studies." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Hospitality" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2083974" ] ] [ a bf:GenreForm ;
+ rdfs:label "Cross-cultural studies." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca4933924" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Hospitalité Études transculturelles." ;
+ bflc:marcKey "650 6 $a Hospitalité $v Études transculturelles." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Hospitalité" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0094230" ] ] [ a bf:GenreForm ;
+ rdfs:label "Études transculturelles." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0384543" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Food habits Social aspects Cross-cultural studies." ;
+ bflc:marcKey "650 0 $a Food habits $x Social aspects $v Cross-cultural studies." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Food habits" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2003443" ] ] [ a bf:Topic ;
+ rdfs:label "Social aspects" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca5180379" ] ] [ a bf:GenreForm ;
+ rdfs:label "Cross-cultural studies." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca4933924" ] ] ) ] ;
+ bf:summary [ a bf:Summary ;
+ rdfs:label "A thought-provoking meditation on food, family, identity, immigration, and, most of all, hospitality--at the table and beyond--that's part food memoir, part appeal for more authentic decency in our daily worlds, and in the world at large -- Source other than Library of Congress."@en ] ;
+ bf:supplementaryContent ;
+ bf:title [ a bf:Title ;
+ rdfs:label "Be my guest /" ;
+ bflc:nonSortNum "0" ;
+ bf:mainTitle "Be my guest /" ] .
+
+ a bf:Organization .
+
+ a bf:Instance ;
+ bf:adminMetadata ;
+ bf:carrier [ a bf:Carrier ;
+ rdfs:label "volume"@en ;
+ bf:code "nc" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:dimensions "21 cm" ;
+ bf:extent [ a bf:Extent ;
+ rdfs:label "122 pages ;"@en ] ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:source [ a bf:Source ;
+ bf:code "Uk" ] ;
+ rdf:value "019532031" ],
+ [ a bf:Nbn ;
+ bf:source ;
+ rdf:value "GBB9F1964" ],
+ [ a bf:Isbn ;
+ bf:qualifier "(hardcover)" ;
+ rdf:value "9781786898494" ],
+ [ a bf:OclcNumber ;
+ rdf:value "1099831598" ],
+ [ a bf:Isbn ;
+ bf:qualifier "(ePub ebook)" ;
+ bf:status ;
+ rdf:value "9781786898500" ],
+ [ a bf:Isbn ;
+ bf:qualifier "(hardcover)" ;
+ rdf:value "1786898497" ],
+ [ a bf:Lccn ;
+ rdf:value " 2022360813" ] ;
+ bf:instanceOf ;
+ bf:issuance [ a bf:Issuance ;
+ rdfs:label "single unit"@en ;
+ bf:code "mono" ;
+ skos:closeMatch ] ;
+ bf:media [ a bf:Media ;
+ rdfs:label "unmediated"@en ;
+ bf:code "n" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:note [ a bf:Note ;
+ rdfs:label "Subtitle from cover."@en ],
+ [ a bf:Note,
+ ;
+ rdfs:label "Includes bibliographical references (pages 121-122)."@en ] ;
+ bf:provisionActivity [ a bf:Publication ;
+ bflc:marcKey "264 1 $a Edinburgh : $b Canongate Books, $c 2019." ;
+ bflc:simpleAgent "Canongate Books," ;
+ bflc:simpleDate "2019." ;
+ bflc:simplePlace "Edinburgh :" ;
+ bf:date "2019"^^ ;
+ bf:place ] ;
+ bf:publicationStatement "Edinburgh : Canongate Books, 2019." ;
+ bf:responsibilityStatement "Priya Basil." ;
+ bf:title [ a bf:Title ;
+ rdfs:label "Be my guest /" ;
+ bflc:nonSortNum "0" ;
+ bf:mainTitle "Be my guest /" ] .
+
+ a bf:Person ;
+ rdfs:label "Basil, Priya, 1977-",
+ "Basil, Priya, 1977- " ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca7432049" ],
+ [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca7432049" ] .
+
+ a bf:Language ;
+ bf:code "eng" .
+
+ a bf:Source ;
+ bf:code "fast" .
+
+ a bf:Source .
+
+ a bf:Source .
+
diff --git a/tests/oclc/books/1141769984.ttl b/tests/oclc/books/1141769984.ttl
new file mode 100644
index 0000000..25eae06
--- /dev/null
+++ b/tests/oclc/books/1141769984.ttl
@@ -0,0 +1,407 @@
+@prefix bf: .
+@prefix bflc: .
+@prefix madsrdf: .
+@prefix oclcbf: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+
+ a bf:GenreForm ;
+ rdfs:label "Festschriften"@en .
+
+ a bf:DescriptionConventions ;
+ rdfs:label "ISBD: International standard bibliographic description"@en ;
+ bf:code "isbd" .
+
+ a bf:DescriptionConventions ;
+ bf:code "rda" .
+
+ a bf:Source ;
+ bf:code "lcgft" .
+
+ a bf:Source ;
+ bf:code "rdacarrier" .
+
+ a bf:Source ;
+ bf:code "rdacontent" .
+
+ a bf:Source ;
+ bf:code "rdamedia" .
+
+ a bf:DescriptionAuthentication ;
+ bf:code "lccopycat" .
+
+ a bflc:EncodingLevel ;
+ rdfs:label "full"@en ;
+ bf:code "f" .
+
+ a bf:Illustration ;
+ rdfs:label "illustrations"@en ;
+ bf:code "ill" .
+
+ a bf:Status ;
+ rdfs:label "changed"@en .
+
+ a bf:Status ;
+ rdfs:label "used by assigner" ;
+ bf:code "uba" .
+
+ a bf:SupplementaryContent ;
+ rdfs:label "bibliography"@en ;
+ bf:code "bibliography" .
+
+ a bf:AdminMetadata,
+ oclcbf:Record ;
+ bflc:encodingLevel ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "HLS" ] ;
+ bf:changeDate "20231122185108.6" ;
+ bf:creationDate "20230327" ;
+ bf:descriptionAuthentication ;
+ bf:descriptionConventions ,
+ ;
+ bf:descriptionLanguage ;
+ bf:descriptionModifier [ a bf:Organization ;
+ bf:code "OCLCO" ],
+ [ a bf:Organization ;
+ bf:code "IUL" ],
+ [ a bf:Organization ;
+ bf:code "OCLCF" ],
+ [ a bf:Organization ;
+ bf:code "EEM" ],
+ [ a bf:Organization ;
+ bf:code "HLS" ] ;
+ bf:language ;
+ bf:note [ a bf:Note,
+ ;
+ rdfs:label "040 $a HLS $b eng $c DLC $d HLS $d EEM $d OCLCF $d IUL $d OCLCO" ] ;
+ bf:status ;
+ oclcbf:mainEntity ;
+ oclcbf:transcriber [ a bf:Organization ;
+ bf:code "DLC" ;
+ skos:closeMatch ] .
+
+ a bf:Monograph,
+ bf:Text,
+ bf:Work,
+ ;
+ bflc:governmentPubType [ a bflc:GovernmentPubType ;
+ rdfs:label ""@en ] ;
+ bf:classification [ a bf:ClassificationLcc ;
+ bf:assigner ;
+ bf:classificationPortion "HQ1240.5.N6" ;
+ bf:itemPortion "A95 2018" ;
+ bf:status ] ;
+ bf:content [ a bf:Content ;
+ rdfs:label "text"@en ;
+ bf:code "txt" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:contribution [ a bf:Contribution ;
+ bflc:marcKey "700 1 $a Adeigbe, Yunus K., $e editor." ;
+ bf:agent [ a bf:Person ;
+ rdfs:label "Adeigbe, Yunus K.," ] ;
+ bf:role [ a bf:Role ;
+ rdfs:label "editor." ] ],
+ [ a bf:Contribution ;
+ bflc:marcKey "700 1 $a Odeleye, Donald A., $e editor." ;
+ bf:agent [ a bf:Person ;
+ rdfs:label "Odeleye, Donald A.," ] ;
+ bf:role [ a bf:Role ;
+ rdfs:label "editor." ] ],
+ [ a bf:Contribution ;
+ bflc:marcKey "700 1 $a Ayeni, Oyebola, $e honouree." ;
+ bf:agent [ a bf:Person ;
+ rdfs:label "Ayeni, Oyebola," ] ;
+ bf:role [ a bf:Role ;
+ rdfs:label "honouree." ] ] ;
+ bf:genreForm [ a bf:GenreForm ;
+ rdfs:label "Festschriften" ;
+ bflc:marcKey "655 7 $a Festschriften $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01941036" ] ;
+ bf:source ],
+ [ a bf:GenreForm ;
+ rdfs:label "Festschriften." ;
+ bflc:marcKey "655 7 $a Festschriften. $2 lcgft" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca10633032" ] ;
+ bf:source ],
+ ;
+ bf:geographicCoverage [ a bf:GeographicCoverage ;
+ bflc:marcKey "043 $a f-nr---" ;
+ bf:code "f-nr---" ;
+ skos:closeMatch ] ;
+ bf:hasInstance ;
+ bf:illustrativeContent ;
+ bf:language ;
+ bf:subject [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Femmes Éducation Nigeria." ;
+ bflc:marcKey "650 6 $a Femmes $x Éducation $z Nigeria." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Femmes" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0024780" ] ] [ a bf:Topic ;
+ rdfs:label "Éducation" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0024780" ] ] [ a bf:Geographic ;
+ rdfs:label "Nigeria." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0493129" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Women Education" ;
+ bflc:marcKey "650 7 $a Women $x Education $2 fast" ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Women" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01176670" ] ] [ a bf:Topic ;
+ rdfs:label "Education" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01176670" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Women in development Nigeria." ;
+ bflc:marcKey "650 0 $a Women in development $z Nigeria." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Women in development" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2124225" ] ] [ a bf:Geographic ;
+ rdfs:label "Nigeria." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca289512" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Femmes dans le développement Nigeria." ;
+ bflc:marcKey "650 6 $a Femmes dans le développement $z Nigeria." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Femmes dans le développement" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0146511" ] ] [ a bf:Geographic ;
+ rdfs:label "Nigeria." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0493129" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Women Education Nigeria." ;
+ bflc:marcKey "650 0 $a Women $x Education $z Nigeria." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Women" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2105390" ] ] [ a bf:Topic ;
+ rdfs:label "Education" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2105390" ] ] [ a bf:Geographic ;
+ rdfs:label "Nigeria." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca289512" ] ] ) ],
+ [ a bf:Topic ;
+ rdfs:label "Women in sustainable development" ;
+ bflc:marcKey "650 7 $a Women in sustainable development $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01177987" ] ;
+ bf:source ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Women in economic development Nigeria." ;
+ bflc:marcKey "650 0 $a Women in economic development $z Nigeria." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Women in economic development" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca5536435" ] ] [ a bf:Geographic ;
+ rdfs:label "Nigeria." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca289512" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Women in sustainable development Nigeria." ;
+ bflc:marcKey "650 0 $a Women in sustainable development $z Nigeria." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Women in sustainable development" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca5773741" ] ] [ a bf:Geographic ;
+ rdfs:label "Nigeria." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca289512" ] ] ) ],
+ [ a bf:Place,
+ madsrdf:Geographic ;
+ rdfs:label "Nigeria" ;
+ bflc:marcKey "651 7 $a Nigeria $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01205229" ] ;
+ bf:source ],
+ [ a bf:Topic ;
+ rdfs:label "Women in development" ;
+ bflc:marcKey "650 7 $a Women in development $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01177865" ] ;
+ bf:source ],
+ [ a bf:Person ;
+ rdfs:label "Ayeni, Oyebola." ;
+ bflc:marcKey "600 10 $a Ayeni, Oyebola." ;
+ bf:source ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Femmes dans le développement économique Nigeria." ;
+ bflc:marcKey "650 6 $a Femmes dans le développement économique $z Nigeria." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Femmes dans le développement économique" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0131494" ] ] [ a bf:Geographic ;
+ rdfs:label "Nigeria." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0493129" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Femmes dans le développement durable Nigeria." ;
+ bflc:marcKey "650 6 $a Femmes dans le développement durable $z Nigeria." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Femmes dans le développement durable" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0367857" ] ] [ a bf:Geographic ;
+ rdfs:label "Nigeria." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0493129" ] ] ) ],
+ [ a bf:Topic ;
+ rdfs:label "Women in economic development" ;
+ bflc:marcKey "650 7 $a Women in economic development $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01177881" ] ;
+ bf:source ] ;
+ bf:supplementaryContent ;
+ bf:title [ a bf:Title ;
+ rdfs:label "Girl-child education and women empowerment for sustainable development :" ;
+ bflc:nonSortNum "0" ;
+ bf:mainTitle "Girl-child education and women empowerment for sustainable development :" ] .
+
+ a bf:Organization .
+
+ a bf:Instance ;
+ bf:adminMetadata ;
+ bf:carrier [ a bf:Carrier ;
+ rdfs:label "volume"@en ;
+ bf:code "nc" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:copyrightDate "©2018"^^ ;
+ bf:dimensions "21 cm" ;
+ bf:extent [ a bf:Extent ;
+ rdfs:label "ix, 222 pages :"@en ] ;
+ bf:identifiedBy [ a bf:OclcNumber ;
+ rdf:value "1141769984" ],
+ [ a bf:Lccn ;
+ rdf:value " 2022371697" ] ;
+ bf:instanceOf ;
+ bf:issuance [ a bf:Issuance ;
+ rdfs:label "single unit"@en ;
+ bf:code "mono" ;
+ skos:closeMatch ] ;
+ bf:media [ a bf:Media ;
+ rdfs:label "unmediated"@en ;
+ bf:code "n" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:note [ a bf:Note,
+ ;
+ rdfs:label "illustrations ;"@en ],
+ [ a bf:Note ;
+ rdfs:label "\"08036694838, 08022900793\"--Back cover."@en ],
+ [ a bf:Note,
+ ;
+ rdfs:label "Includes bibliographical references."@en ] ;
+ bf:provisionActivity [ a bf:Publication ;
+ bflc:marcKey "264 1 $a Ibadan : $b College Press & Publishers, Lead City University, $c [2018]" ;
+ bflc:simpleAgent "College Press & Publishers, Lead City University," ;
+ bflc:simpleDate "[2018]" ;
+ bflc:simplePlace "Ibadan :" ;
+ bf:date "2018"^^ ;
+ bf:place ] ;
+ bf:publicationStatement "Ibadan : College Press & Publishers, Lead City University, [2018]" ;
+ bf:responsibilityStatement "edited by Prof. Donald A. Odeleye & Dr. Yunus K. Adeigbe." ;
+ bf:title [ a bf:Title ;
+ rdfs:label "Girl-child education and women empowerment for sustainable development : a book of readings : in honour of Dr Mrs Oyebola Ayeni /" ;
+ bflc:nonSortNum "0" ;
+ bf:mainTitle "Girl-child education and women empowerment for sustainable development :" ;
+ bf:subtitle "a book of readings : in honour of Dr Mrs Oyebola Ayeni /" ] .
+
+ a bf:Language ;
+ bf:code "eng" .
+
+ a bf:Source .
+
+ a bf:Source .
+
+ a bf:Source ;
+ bf:code "fast" .
+
diff --git a/tests/oclc/books/1141777830.ttl b/tests/oclc/books/1141777830.ttl
new file mode 100644
index 0000000..af54e26
--- /dev/null
+++ b/tests/oclc/books/1141777830.ttl
@@ -0,0 +1,420 @@
+@prefix bf: .
+@prefix bflc: .
+@prefix madsrdf: .
+@prefix oclcbf: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+
+ a bf:DescriptionConventions ;
+ rdfs:label "ISBD: International standard bibliographic description"@en ;
+ bf:code "isbd" .
+
+ a bf:DescriptionConventions ;
+ bf:code "rda" .
+
+ a bf:Source ;
+ bf:code "rdacarrier" .
+
+ a bf:Source ;
+ bf:code "rdacontent" .
+
+ a bf:Source ;
+ bf:code "rdamedia" .
+
+ a bf:DescriptionAuthentication ;
+ bf:code "lcode" .
+
+ a bf:DescriptionAuthentication ;
+ bf:code "pcc" .
+
+ a bflc:EncodingLevel ;
+ rdfs:label "full"@en ;
+ bf:code "f" .
+
+ a bf:Illustration ;
+ rdfs:label "illustrations"@en ;
+ bf:code "ill" .
+
+ a bf:Illustration ;
+ rdfs:label "maps"@en ;
+ bf:code "map" .
+
+ a bf:Illustration ;
+ rdfs:label "plans"@en ;
+ bf:code "pln" .
+
+ a bf:Status ;
+ rdfs:label "changed"@en .
+
+ a bf:Status ;
+ rdfs:label "used by assigner" ;
+ bf:code "uba" .
+
+ a bf:SupplementaryContent ;
+ rdfs:label "bibliography"@en ;
+ bf:code "bibliography" .
+
+ a bf:AdminMetadata,
+ oclcbf:Record ;
+ bflc:encodingLevel ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "DLC" ;
+ skos:closeMatch ] ;
+ bf:changeDate "20241024104120.6" ;
+ bf:creationDate "20230213" ;
+ bf:descriptionAuthentication ,
+ ;
+ bf:descriptionConventions ,
+ ;
+ bf:descriptionLanguage ;
+ bf:descriptionModifier [ a bf:Organization ;
+ bf:code "GZM" ],
+ [ a bf:Organization ;
+ bf:code "DLC" ;
+ skos:closeMatch ],
+ [ a bf:Organization ;
+ bf:code "OCLCO" ],
+ [ a bf:Organization ;
+ bf:code "AU@" ],
+ [ a bf:Organization ;
+ bf:code "IG#" ],
+ [ a bf:Organization ;
+ bf:code "OCLCL" ],
+ [ a bf:Organization ;
+ bf:code "OCLCF" ],
+ [ a bf:Organization ;
+ bf:code "UKMGB" ] ;
+ bf:language ;
+ bf:note [ a bf:Note,
+ ;
+ rdfs:label "040 $a DLC $b eng $c DLC $d OCLCF $d UKMGB $d DLC $d AU@ $d GZM $d OCLCO $d OCLCL $d IG#" ] ;
+ bf:status ;
+ oclcbf:mainEntity ;
+ oclcbf:transcriber [ a bf:Organization ;
+ bf:code "DLC" ;
+ skos:closeMatch ] .
+
+ a bf:Monograph,
+ bf:Text,
+ bf:Work,
+ ;
+ bflc:governmentPubType [ a bflc:GovernmentPubType ;
+ rdfs:label ""@en ] ;
+ bf:classification [ a bf:ClassificationLcc ;
+ bf:assigner ;
+ bf:classificationPortion "NA6010.7" ;
+ bf:itemPortion ".K37 2019" ;
+ bf:status ] ;
+ bf:content [ a bf:Content ;
+ rdfs:label "text"@en ;
+ bf:code "txt" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:contribution [ a bf:PrimaryContribution ;
+ bflc:marcKey "100 1 $a Karamat, Samia, $e author." ;
+ bf:agent [ a bf:Person ;
+ rdfs:label "Karamat, Samia," ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca15403963" ] ] ;
+ bf:role [ a bf:Role ;
+ rdfs:label "author." ] ] ;
+ bf:geographicCoverage [ a bf:GeographicCoverage ;
+ bflc:marcKey "043 $a a-pk---" ;
+ bf:code "a-pk---" ;
+ skos:closeMatch ] ;
+ bf:hasInstance ;
+ bf:illustrativeContent ,
+ ,
+ ;
+ bf:language ;
+ bf:subject [ a bf:Topic ;
+ rdfs:label "Sikhism" ;
+ bflc:marcKey "650 7 $a Sikhism $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01118413" ] ;
+ bf:source ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Sikh architecture Pakistan." ;
+ bflc:marcKey "650 0 $a Sikh architecture $z Pakistan." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Sikh architecture" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2155925" ] ] [ a bf:Geographic ;
+ rdfs:label "Pakistan." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca506453" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Historic buildings Pakistan." ;
+ bflc:marcKey "650 0 $a Historic buildings $z Pakistan." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Historic buildings" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2074499" ] ] [ a bf:Geographic ;
+ rdfs:label "Pakistan." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca506453" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Temples sikhs Pākistān." ;
+ bflc:marcKey "650 6 $a Temples sikhs $z Pākistān." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Temples sikhs" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0063758" ] ] [ a bf:Geographic ;
+ rdfs:label "Pākistān." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0493119" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Geographic ;
+ rdfs:label "Pakistan Antiquities." ;
+ bflc:marcKey "651 0 $a Pakistan $x Antiquities." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Geographic ;
+ rdfs:label "Pakistan" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2108355" ] ] [ a bf:Topic ;
+ rdfs:label "Antiquities." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2108355" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Sikhism Pakistan." ;
+ bflc:marcKey "650 0 $a Sikhism $z Pakistan." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Sikhism" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2112756" ] ] [ a bf:Geographic ;
+ rdfs:label "Pakistan." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca506453" ] ] ) ],
+ [ a bf:Topic ;
+ rdfs:label "Sikh architecture" ;
+ bflc:marcKey "650 7 $a Sikh architecture $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01733000" ] ;
+ bf:source ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Sikh temples Pakistan." ;
+ bflc:marcKey "650 0 $a Sikh temples $z Pakistan." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Sikh temples" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2015649" ] ] [ a bf:Geographic ;
+ rdfs:label "Pakistan." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca506453" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Sikh shrines Pakistan." ;
+ bflc:marcKey "650 0 $a Sikh shrines $z Pakistan." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Sikh shrines" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca2112742" ] ] [ a bf:Geographic ;
+ rdfs:label "Pakistan." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "oca506453" ] ] ) ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Sikhisme Pākistān." ;
+ bflc:marcKey "650 6 $a Sikhisme $z Pākistān." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Sikhisme" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0061078" ] ] [ a bf:Geographic ;
+ rdfs:label "Pākistān." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0493119" ] ] ) ],
+ [ a bf:Topic ;
+ rdfs:label "Sikh shrines" ;
+ bflc:marcKey "650 7 $a Sikh shrines $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01118407" ] ;
+ bf:source ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Geographic ;
+ rdfs:label "Pākistān Antiquités." ;
+ bflc:marcKey "651 6 $a Pākistān $x Antiquités." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Geographic ;
+ rdfs:label "Pākistān" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0166126" ] ] [ a bf:Topic ;
+ rdfs:label "Antiquités." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0166126" ] ] ) ],
+ [ a bf:Topic ;
+ rdfs:label "Sikh temples" ;
+ bflc:marcKey "650 7 $a Sikh temples $2 fast" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01754512" ] ;
+ bf:source ],
+ [ a bf:Topic,
+ madsrdf:ComplexSubject,
+ madsrdf:Topic ;
+ rdfs:label "Sanctuaires sikhs Pākistān." ;
+ bflc:marcKey "650 6 $a Sanctuaires sikhs $z Pākistān." ;
+ bf:source ;
+ madsrdf:componentList ( [ a bf:Topic ;
+ rdfs:label "Sanctuaires sikhs" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0104755" ] ] [ a bf:Geographic ;
+ rdfs:label "Pākistān." ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "CaQQLa" ] ;
+ rdf:value "201-0493119" ] ] ) ],
+ ;
+ bf:supplementaryContent ;
+ bf:title [ a bf:Title ;
+ rdfs:label "Architecture of Sikh shrines and gurdawaras in Pakistan /" ;
+ bflc:nonSortNum "0" ;
+ bf:mainTitle "Architecture of Sikh shrines and gurdawaras in Pakistan /" ] .
+
+ a bf:Place,
+ madsrdf:Geographic ;
+ rdfs:label "Pakistan" ;
+ bflc:marcKey "651 7 $a Pakistan $2 fast $1 https://id.oclc.org/worldcat/entity/E39PBJtRHpcQwVgFhwHTVf9hpP" ;
+ bf:identifiedBy [ a bf:Local ;
+ bf:assigner [ a bf:Organization ;
+ bf:code "OCoLC" ] ;
+ rdf:value "fst01210275" ] ;
+ bf:source .
+
+ a bf:Instance ;
+ bf:acquisitionSource [ a bf:AcquisitionSource ;
+ rdfs:label "Library of Congress -- Islamabad Overseas Office" ] ;
+ bf:adminMetadata ;
+ bf:carrier [ a bf:Carrier ;
+ rdfs:label "volume"@en ;
+ bf:code "nc" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:dimensions "29 cm" ;
+ bf:extent [ a bf:Extent ;
+ rdfs:label "xii, 188 pages :"@en ] ;
+ bf:identifiedBy [ a bf:OclcNumber ;
+ rdf:value "1141777830" ],
+ [ a bf:Isbn ;
+ bf:qualifier "(hardback)" ;
+ rdf:value "9789698899271" ],
+ [ a bf:Isbn ;
+ rdf:value "9698899278" ],
+ [ a bf:Lccn ;
+ rdf:value " 2023318019" ],
+ [ a bf:Local ;
+ bf:source [ a bf:Source ;
+ bf:code "Uk" ] ;
+ rdf:value "020104816" ] ;
+ bf:instanceOf ;
+ bf:issuance [ a bf:Issuance ;
+ rdfs:label "single unit"@en ;
+ bf:code "mono" ;
+ skos:closeMatch ] ;
+ bf:media [ a bf:Media ;
+ rdfs:label "unmediated"@en ;
+ bf:code "n" ;
+ bf:source ;
+ skos:closeMatch ] ;
+ bf:note [ a bf:Note,
+ ;
+ rdfs:label "Includes bibliographical references (page 187)."@en ],
+ [ a bf:Note ;
+ rdfs:label "Includes glossary."@en ],
+ [ a bf:Note,
+ ;
+ rdfs:label "illustrations (chiefly color), maps, plans ;"@en ] ;
+ bf:provisionActivity [ a bf:Publication ;
+ bflc:marcKey "264 1 $a Lahore : $b New Line Publishers, $c 2019." ;
+ bflc:simpleAgent "New Line Publishers," ;
+ bflc:simpleDate "2019." ;
+ bflc:simplePlace "Lahore :" ;
+ bf:date "2019"^^ ;
+ bf:place ] ;
+ bf:publicationStatement "Lahore : New Line Publishers, 2019." ;
+ bf:responsibilityStatement "Samia Karamat." ;
+ bf:title [ a bf:Title ;
+ rdfs:label "Architecture of Sikh shrines and gurdawaras in Pakistan /" ;
+ bflc:nonSortNum "0" ;
+ bf:mainTitle "Architecture of Sikh shrines and gurdawaras in Pakistan /" ] .
+
+ a bf:Language ;
+ bf:code "eng" .
+
+ a bf:Organization .
+
+ a bf:Source .
+
+ a bf:Source ;
+ bf:code "fast" .
+
+ a bf:Source .
+
diff --git a/tests/oclc/books/1141980438.ttl b/tests/oclc/books/1141980438.ttl
new file mode 100644
index 0000000..942bb6d
--- /dev/null
+++ b/tests/oclc/books/1141980438.ttl
@@ -0,0 +1,855 @@
+@prefix bf: .
+@prefix bflc: .
+@prefix madsrdf: .
+@prefix oclcbf: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+
+ a bf:GenreForm ;
+ rdfs:label "Fiction"@en .
+
+ a bf:Source ;
+ bf:code "clc" .
+
+ a bf:DescriptionConventions ;
+ rdfs:label "ISBD: International standard bibliographic description"@en ;
+ bf:code "isbd" .
+
+ a bf:DescriptionConventions ;
+ bf:code "rda" .
+
+ a bf:Source ;
+ bf:code "bisacsh" .
+
+ a bf:Source ;
+ bf:code "rdacarrier" .
+
+ a bf:Source ;
+ bf:code "rdamedia" .
+
+ a bf:DescriptionAuthentication ;
+ bf:code "lccopycat" .
+
+ a bf:IntendedAudience ;
+ rdfs:label "primary"@en ;
+ bf:code "pri" .
+
+ a bflc:EncodingLevel ;
+ rdfs:label "full"@en ;
+ bf:code "f" .
+
+ a bf:Illustration ;
+ rdfs:label "illustrations"@en ;
+ bf:code "ill" .
+
+ a bf:Status ;
+ rdfs:label "changed"@en .
+
+ a bf:Status ;
+ rdfs:label "used by assigner" ;
+ bf:code "uba" .
+
+ a bf:Source ;
+ bf:code "aat" .
+
+ a bf:Source ;
+ bf:code "homoit" .
+
+ a bf:AdminMetadata,
+ oclcbf:Record ;
+ bflc:encodingLevel