Month: April 2012

  • Pros and cons of level 0 MARC elements

    Why create “a separate property for every combination of tag, two indicators, and subfield”, as I mentioned in Low-hanging MARC fruit?

    As Karen says in her comment on Getting to higher MARC branches, in the case of the Target audience data element there is no need for the RDF properties defined for each MARC21 “resource type” when the Target audience value vocabulary can be linked directly to the property defined at the higher level of the MARC21 resource.

    The data element is one of several in the MARC 21 format for bibliographic data that are “defined the same in the specifications for more than one type of material” and share the same value vocabulary; this requires inspection of the vocabulary for each type, as there seems to be no explicit indication in the text. We have used the prefix “common” in the vocabulary URIs to reflect this, as in the value URI of the object of the ex:1 data triple (“commonaud#j”). Examples include commonaud (MARC21-008: Target audience) itself, as well as commonfor (MARC21-008: Form of item) and commonnat (MARC21-008: Nature of contents).

    Despite this, I think it is worth including the 006 equivalents of the Target audience element in the RDF graph, as they represent “special aspects of the item being cataloged that cannot be coded in field 008”. This ensures that any semantic relationship between the 006 and 008 fixed-length data elements is preserved in the data. The semantic relationship between “type” and “form” of material in the 006/008 relationship table is not specified, so I assume that it will be incorporated, along with usage guidelines, etc., in one or more application profiles. Application profiles can also ensure that values from the common Vocabulary Encoding Scheme are preserved in data triples entailed during dumb-up to the level of the resource as a whole.

    This illustrates one of the intended benefits of the level 0 properties:

    • Maximum flexibility for inclusion in application profiles and mappings to external namespaces, of which m21plus is just an example.

    Other benefits include:

    • Support of very simple algorithms for the production of data triples from existing MARC21 records. There is only a single decision point, based on  the data in Leader 06 of the record.
    • Support for round-tripping data triples back to MARC21 encoded records.

    Disadvantages of the level 0 properties include:

    • The need to create super-properties to support data triples at the level of the whole resource and for aggregated statements.
    • The need to add mappings between level 0 and super-properties.

    We have developed a full set of m21plus super-properties for the fixed-length data fields, with rdfs:subPropertyOf mappings from the level 0 properties, and hope to load them into the OMR real soon now for use by applications.

    We also expect to find more benefits and disadvantages in using the level 0 properties as we continue to investigate the MARC21 variable data fields.

     

  • Adding MARC fruit to the cornucopia

    Netting more MARC fruit discussed the use of the rdfs:subPropertyOf property to allow MARC21 data to interoperate with triples based on similar properties in element sets from other metadata schemas. We can show the procedure in action using the Target audience property described in Getting to higher MARC branches.

    A quick examination of the namespaces for Dublin Core terms, the FRBR entity-relationship model, ISBD, and RDA reveals properties for intended or target audience in each. The FRSAD (FR for Subject Authority Data) namespace also has a property labelled “has audience”, but it refers to the class Nomen which contains labels and identifiers for subject topics; it is about subject headings and classifications, not the resource itself, so has a completely different context and is not suitable for interoperating with MARC21’s Target audience data.

    The relevant triples for each property are:

    Dublin Core terms:

    @prefix dct: <http://purl.org/dc/terms/>.
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
    dct:audience rdfs:comment "A class of entity for whom the resource is intended or useful." .
    dct:audience rdfs:label "audience" .
    dct:audience rdfs:range dct:AgentClass .

    FRBR:

    @prefix frbrer: <http://iflastandards.info/ns/fr/frbr/frbrer/>.
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#&gt.
    @prefix skos: <http://www.w3.org/2004/02/skos/core#>.
    frbrer:P3006 skos:definition "Relates a work to the class of user for which the work is intended, as defined by age group, educational level, or other categorization." .
    frbrer:P3006 rdfs:label "has intended audience" .
    frbrer:P3006 rdfs:domain frbrer:C1001 .

    ISBD:

    @prefix isbd: <http://iflastandards.info/ns/isbd/elements/>.
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#&gt.
    @prefix skos: <http://www.w3.org/2004/02/skos/core#&gt.
    isbd:P1091 skos:definition "Relates a resource to a note providing non-evaluative information as to the potential or recommended use of the resource and/or the intended audience." .
    isbd:P1091 rdfs:label "has note on use or audience" .
    isbd:P1091 rdfs:domain isbd:Resource .

    RDA:

    @prefix rda: <http://rdvocab.info/Elements/>.
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#&gt.
    @prefix skos: <http://www.w3.org/2004/02/skos/core#&gt.
    @prefix unc: <http://.../>.
    rda:intendedAudienceWork skos:definition "The class of user for which the content of a resource is intended, or for whom the content is considered suitable, as defined by age group (e.g., children, young adults, adults, etc.), educational level (e.g., primary, secondary, etc.), type of disability, or other categorization." .
    rda:intendedAudienceWork rdfs:label "Intended audience (Work)" .
    rda:intendedAudienceWork rdfs:domain rdafrbr:Work .
    rda:intendedAudienceWork rdfs:subPropertyOf unc:intendedAudience .

    Unconstrained RDA:

    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#&gt.
    @prefix skos: <http://www.w3.org/2004/02/skos/core#&gt.
    @prefix unc: <http://.../>.
    unc:intendedAudience skos:definition "The class of user for which the content of a resource is intended, or for whom the content is considered suitable, as defined by age group (e.g., children, young adults, adults, etc.), educational level (e.g., primary, secondary, etc.), type of disability, or other categorization." .
    unc:intendedAudience rdfs:label "Intended audience" .

    And for our high-level MARC21 property:

    @prefix m21plus: <http://marc21rdf.info/elements/.../>.
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#&gt.
    @prefix skos: <http://www.w3.org/2004/02/skos/core#&gt.
    m21plus:M00Aud skos:definition "The intellectual level of the target audience for which the material is intended." .
    m21plus:M00Aud rdfs:label "Target audience" .

    The MARC21 property has a narrower definition than any of the others. Taking into account the domain and range constraints leaves only the unconstrained RDA property as a candidate super-property:

    m21plus:M00Aud rdfs:subPropertyOf unc:intendedAudience .

    This allows triples from MARC21 records to have entailments which use the same unconstrained property as triples from RDA records; the FRBR-constrained RDA property is already a sub-property of the unconstrained property.

    RDF graphs of MARC21 and RDA data triples and entailments.
    RDF graphs of MARC21 and RDA data triples and entailments.

    Of course, the original MARC21 triple is itself an entailment from a level 0 triple.

    We can use the same procedure to align and map the other properties we found for target or intended audience. The resulting RDF ontology is:

    @prefix dct: <http://purl.org/dc/terms/>.
    @prefix frbrer: <http://iflastandards.info/ns/fr/frbr/frbrer/>.
    @prefix isbd: <http://iflastandards.info/ns/isbd/elements/>.
    @prefix m21plus: <http://marc21rdf.info/elements/.../>.
    @prefix rda: <http://rdvocab.info/Elements/>.
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
    @prefix unc: <http://.../>.
    dct:audience rdfs:subPropertyOf unc:intendedAudience .
    frbrer:P3006 rdfs:subPropertyOf unc:intendedAudience .
    m21plus:M00Aud rdfs:subPropertyOf unc:intendedAudience .
    rda:intendedAudienceWork rdfs:subPropertyOf unc:intendedAudience .
    unc:intendedAudience rdfs:subPropertyOf unc:P1091 .
    isbd:P1091 rdfs:subPropertyOf unc:P1091 .

    Note that the ISBD property is broader in definition that the unconstrained RDA property, but is itself constrained by its domain. So we need an unconstrained version of the ISBD property, which has the broadest semantic of all the related properties.

    RDF graph of Target/intended audience ontology
    RDF graph of Target/intended audience ontology

    This ontology allows all the data about the intended audience of a resource to be available as a single, common attribute; our MARC fruit is added to the basket automatically, once it has been plucked as a level 0 triple.

  • Netting more MARC fruit

    Getting to higher MARC branches showed how the RDFS subPropertyOf property can be used to entail, or infer, RDF data triples with a broader semantic or meaning than the original, to “dumb-up” or aggregate data based on level 0 properties. Only the property or predicate part of the triple is different; the subject URI and object URI or literal remain unchanged.

    The Target audience example represents one of several categories we have identified for the level 0 properties for the fixed-length data fields in MARC. This one is characterized as two or more properties with the same definition using the same Vocabulary Encoding Scheme (VES).

    A more complex category is characterized as two or more properties with the same definition using the same VES where the underlying attribute allows  more than one value and the order of values is significant. An example is the 008 attribute Relief of maps:

    RDF graph of MARC21 Relief of maps ontology (partial)
    RDF graph of MARC21 Relief of maps ontology (partial)

    “sP” in the graph stands for rdfs:subPropertyOf. The graph does not show the level 0 properties for Relief (2), (3), and (4).

    This ontology separates the semantics of the order of the data from the type of data while preserving the data values. It offers any application a property for the most important relief type specified on the item being described (m21plus:M00Rel1 “Relief (1)”), a property for the second most important relief type (m21plus:M00Rel2 “Relief (2)”), etc., a property for the relief type regardless of importance (m21plus:M008MP18-21 “Relief of Maps”), etc., and a property for the relief type regardless of importance or category of material (m21plus:M00Rel “Relief”).

    Target audience and Relief are, of course, at the level of attribute or relationship found in many other schemas. The rdfs:subPropertyOf property can be used to establish mappings as semantic relationships between similar properties in multiple namespaces, as described in our paper A reconsideration of mapping in a semantic world.

    While properties may be similar in different namespaces, care has to be taken to avoid semantic incoherency and the inadvertent addition of false information into entailed triples. This has been  easy with the level 0 properties because the basic definitions are identical, and none of the properties is bound by a domain or range. The situation changes when properties from other namespaces are considered. Definitions may be the same in meaning, or broader or narrower. For example, the definition of m21plus:M00Aud, “The intellectual level of the target audience for which the material is intended”, is clearly narrower than the definition of the corresponding RDA property, “The class of user for which the content of a resource is intended, or for whom the content is considered suitable, as defined by age group (e.g., children, young adults, adults, etc.), educational level (e.g., primary, secondary, etc.), type of disability, or other categorization”. If the RDA property is declared a sub-property of the MARC21 property, resulting entailments will give values which are out of scope, for example type of disability, even if the constraint of the MARC21 VES for target audience is ignored. Conversely, declaring the MARC21 property as a sub-property of the RDA property does not lead to such problems, as RDA can accommodate the VES URIs within its scope and range.

    However, it turns out we are on risky ground if we do this, because the RDA property has the FRBR class Work as its domain. This means that in any entailed triple, the URI of the MARC21 resource which is the subject of the original triple is inferred to be a work (a member of the class Work). But unless the MARC21 data has been pre-FRBRized, other triples with the same subject URI will entail triples stating the same resource is also a manifestation, etc., which breaks the FRBR model. Even though the RDA namespace is currently using its own “weak” version of the FRBR classes, there is no guarantee that it won’t link to the FRBR namespace in the future. The situation is therefore best avoided, and what is required is a version of the RDA property that does not have a domain. Fortunately, this was anticipated by the DCMI/RDA Task Group (now the DCMI Bibliographic Metadata Task Group), and “unconstrained” versions of all the RDA properties were added when the namespace was created, as described in our paper RDA vocabularies: process, outcome, use.

    As a general procedure, then, a MARC21 high-level property can be mapped out to another namespace by using sub-property relationships, when the target property completely encompasses the MARC21 property and has no domain or range, or is completely encompassed by the MARC21 property and has no range (to avoid the VES issue). The entailed triples produced by the mappings allow maximum interoperability of MARC21 data with that from other schemas without transforming the data values.

  • Getting to higher MARC branches

    In the previous blog I discussed Low-hanging MARC fruit in the MARC21 fixed-length data fields 006, 007, and 008. These fields also contain useful data that hangs slightly higher up, but can be reached with a short ladder. The ladder rungs are constructed using the RDF Schema subPropertyOf property. This is an ontological property which takes the RDF class Property as its domain and range; in other words, it links instances of two properties:

    P1 rdfs:subPropertyOf P2 – where P1 and P2 are specific properties.

    The subPropertyOf property contains the inference rule or entailment that:

    If P1 rdfs:subPropertyOf P2, and X P1 Y, then X P2 Y

    That is, if property P1 is a sub-property of property P2, then a machine can entail a triple using property P2 with the same subject and object as any triple using property P1.

    There is a lot of semantic overlap in the MARC21 fields. For example, field 006 positions 01-17 relate to positions 18-34 in one of the field 008 configurations; they use the same values. 006 is used in cases when an item has multiple characteristics that cannot be coded in field 008. There is no semantic difference between the 006 and 008 data – a multi-component item may be catalogued as a whole using 008 for the main component and 006 for other components, or each component may be catalogued separately with its own 008 field.

    We can aggregate this data by declaring sub-property relationships between corresponding 006 and 008 “level 0” properties and a new common super-property:

    E.g. Create a new property M00Aud with label “Target audience”, and declare M006a05 (“Target audience of Language material”), M006t05 (“Target audience of Manuscript language material”) and M008BK22 (“Target audience of Books”) as sub-properties:

    @prefix m2100x: <http://marc21rdf.info/elements/00X/>.
    @prefix m21plus: <http://marc21rdf.info/elements/.../>.
    m21plus:M00Aud rdfs:label "Target audience" .
    m2100x:M006a05 rdfs:subPropertyOf m21plus:M00Aud .
    m2100x:M006t05 rdfs:subPropertyOf m21plus:M00Aud .
    m2100x:M008BK22 rdfs:subPropertyOf m21plus:M00Aud .

    A machine can use this RDF graph to entail new triples from existing data:

    ex:1 m2100x:M006a05 m21terms:commonaud#j .
    => ex:1 m21plus:M00Aud m21terms:commonaud#j .
    ex:2 m2100x:M006t05 m21terms:commonaud#e .
    => ex:2 m21plus:M00Aud m21terms:commonaud#e .
    ex:3 m2100x:M008BK22 m21terms:commonaud#g .
    => ex:3 m21plus:M00Aud m21terms:commonaud#g .

    RDF graphs of data triples and entailments (dotted lines)
    RDF graphs of data triples and entailments (dotted lines)

    Here, three different resources (ex:1, ex:2, ex:3) have target audience data stored in three different MARC21 fixed-length fields. The entailed triples store the data using a common property that encompasses the semantic of the level 0 properties by discarding their differences, which are the material categories. Each entailed triple states “This resource has target audience …”, dropping the distinction of material category which is unnecessary for this metadata attribute.

    Using the entailed triples, we only need to process the higher-level property to create, for example, a “Target audience” index for a set of MARC21 records, rather than having to gather the data from the level 0 properties every time.

    We can go further. The same value vocabulary for Target audience is used for other categories of material:

    • M006c05 (“Target audience of Notated music”)
    • M006d05 (“Target audience of Manuscript notated music”)
    • M006g05 (“Target audience of Projected medium”)
    • M006i05 (“Target audience of Nonmusical sound recording”)
    • M006j05 (“Target audience of Musical sound recording”)
    • M006k05 (“Target audience of Two-dimensional nonprojectable graphic”)
    • M006m05 (“Target audience of Computer file or Electronic resource”)
    • M006o05 (“Target audience of Kit”)
    • M006r05 (“Target audience of Three-dimensional artifact or naturally occurring object”)
    • M008CF22 (“Target audience of Computer Files”)
    • M008MU22 (“Target audience of Music”)
    • M008VM22 (“Target audience of Visual Materials”)

    So we can declare sub-property relationships between each of these level 0 properties and the higher-level “Target audience” property, and generate the entailed triples.

    Note that we could create an intermediary rung on our ladder, say M00BKAud “Target audience (Language material)”, to aggregate data at the material category level, and then declare a sub-property relationship with M00Aud to aggregate to the category-free level. There is no specific use-case for this at the moment. If the need arises, this can be done without affecting the existing sub-property relationships and entailments, because the subPropertyOf property is transitive: P1 rdfs:subPropertyOf P2 and P2 rdfs:subPropertyOf P3 entails P1 rdfs:subPropertyOf P3.

    Our ladder “dumbs-up” the level 0 data; each sub-property entailment uses a higher-level property that is broader in semantic than the last. The ladders merge at each stage and are just one rung in length, so what we get is more like a climbing net to get to the higher-hanging fruit.

    RDF graph of MARC21 Target audience ontology
    RDF graph of MARC21 Target audience ontology

    Applications can now deal with just one attribute property for Target audience and avoid the messiness at level 0. And there is just one property to align and map to corresponding properties from other bibliographic metadata schemas …