diff --git a/docs/rdf/index.md b/docs/rdf/index.md index 0da944a..7c2c2f0 100644 --- a/docs/rdf/index.md +++ b/docs/rdf/index.md @@ -110,7 +110,7 @@ First, if a non-IRI globally unique identifier is used to identify a subject res urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 ``` -Similarly, [ISBNs can be converted to URNs](http://tools.ietf.org/html/rfc3187) as shown in Examples 13 and 14. Although these URNs are valid IRIs, they have the disadvantage that they are not actionable (see [Section 1.3.2.2](https://github.com/baskaufs/dwc/blob/master/docs/rdf/index.md#1322-http-iris-as-self-resolving-guids-normative)). In contrast, the "Darwin Core triplet" +Similarly, [ISBNs can be converted to URNs](http://tools.ietf.org/html/rfc3187) as shown in Examples 13 and 14. Although these URNs are valid IRIs, they have the disadvantage that they are not actionable (see [Section 1.3.2.2](#1322-http-iris-as-self-resolving-guids-normative)). In contrast, the "Darwin Core triplet" ``` MVZ:Mamm:165861 @@ -126,7 +126,7 @@ Second, if a provider refers to a resource using an URL that provides data about For a more detailed introduction to persistent identifiers, see the [GBIF Beginner's Guide to Persistent Identifiers](https://www.gbif.org/document/80575). -Based on the precedent set by the [TDWG LSID Applicability Statement standard](http://www.tdwg.org/standards/150/), it is recommended that URN-based IRIs be related to HTTP-proxied equivalents (if they exist) as described in [Section 2.2.3](https://github.com/baskaufs/dwc/blob/master/docs/rdf/index.md#223-associating-a-urn-with-its-http-proxied-equivalent-normative). +Based on the precedent set by the [TDWG LSID Applicability Statement standard](http://www.tdwg.org/standards/150/), it is recommended that URN-based IRIs be related to HTTP-proxied equivalents (if they exist) as described in [Section 2.2.3](#223-associating-a-urn-with-its-http-proxied-equivalent-normative). ##### 1.3.2.2 HTTP IRIs as self-resolving GUIDs (normative) @@ -148,17 +148,17 @@ For more detailed information about the implications of using terms that have ra #### 1.4.3 Use of Darwin Core terms in RDF (normative) -The general Darwin Core vocabulary, whose terms are in the ```dwc:``` namespace (http://rs.tdwg.org/dwc/terms/), is designed primarily to facilitate the transfer of text-based records from relatively "flat" database tables. Because of this, the term recommendations associated with the general vocabulary suggest using text strings to refer to physical and conceptual entities, i.e., names to represent people, citations to represent articles, codes to represent institutions, etc. (The several kinds of roles intended for text strings are detailed in [Section 1.5](./index.htm#1.5_Roles_of_text_strings_as_values_of_properties_in_dwc:_namesp).) When a record has multiple values for a property, the general Darwin Core term definitions recommend that the multiple strings be concatenated and delineated in a single field to avoid forcing the creation of a more normalized data structure. +The general Darwin Core vocabulary, whose terms are in the ```dwc:``` namespace (```http://rs.tdwg.org/dwc/terms/```), is designed primarily to facilitate the transfer of text-based records from relatively "flat" database tables. Because of this, the term recommendations associated with the general vocabulary suggest using text strings to refer to physical and conceptual entities, i.e., names to represent people, citations to represent articles, codes to represent institutions, etc. (The several kinds of roles intended for text strings are detailed in [Section 1.5](#15-roles-of-text-strings-as-values-of-properties-in-dwc-namespace-non-normative).) When a record has multiple values for a property, the general Darwin Core term definitions recommend that the multiple strings be concatenated and delineated in a single field to avoid forcing the creation of a more normalized data structure. However, in RDF, identification of physical and conceptual entities is generally accomplished by IRI references rather than literals. If there are multiple values for a property, each value should be referenced in a separate triple. Thus we face a situation where it is desirable in the context of RDF for certain DwC properties to be represented by one to many triples having non-literal (IRI reference) objects, while the actual definitions of the terms in the general DwC vocabulary which represent those properties specify that a single literal (text string) object be provided. In a perfect world, all data providers wishing to serve RDF would immediately replace literal references to physical and conceptual resources (names, citations, codes, etc.) with IRI GUIDs that identify those resources and which are reused by other members of the community. However, it is more realistic to assume that at least initially many providers will have few (if any) GUIDs available to use as IRI references, so requiring non-literal resources to be referenced exclusively by IRIs would impede the exposure of data in the form of RDF. Therefore, it would be advantageous to provide an alternative set of DwC terms intended for use in RDF with IRI-referenced objects, while continuing to use the general DwC terms for literal objects where providers are unable to convert their existing (string) database fields to IRI references. -This guide introduces the namespace **```dwciri:```** (http://rs.tdwg.org/dwc/iri/) whose terms are intended for use with non-literal objects. If a term in the ```dwciri:``` namespace has an analogue in the ```dwc:``` namespace having the same local name, the ```dwciri:``` term will have the same meaning as its ```dwc:``` counterpart. For example, ```dwciri:recordedBy``` has the same meaning as ```dwc:recordedBy```, but as an RDF predicate ```dwciri:recordedBy``` is intended to be repeatable and have an IRI-reference object. Providers whose databases include the field ```dwc:recordedBy``` with records containing concatenated lists of names can publish those values immediately as single RDF triples using ```dwc:recordedBy``` as the predicate and containing one literal object which is the concatenated list string. In this manner, publication of data as RDF can begin immediately using the ```dwc:``` terms without the requirement that every resource have an assigned IRI GUID. As the community develops mechanisms for discovering and reusing IRIs, data providers can make the shift to ```dwciri:``` terms. As a part of their data updating and cleaning process providers or aggregators may eventually parse the strings, search a community IRI repository, and match strings with existing IRIs or create new ones if they do not already exist. +This guide introduces the namespace **```dwciri:```** (```http://rs.tdwg.org/dwc/iri/```) whose terms are intended for use with non-literal objects. If a term in the ```dwciri:``` namespace has an analogue in the ```dwc:``` namespace having the same local name, the ```dwciri:``` term will have the same meaning as its ```dwc:``` counterpart. For example, ```dwciri:recordedBy``` has the same meaning as ```dwc:recordedBy```, but as an RDF predicate ```dwciri:recordedBy``` is intended to be repeatable and have an IRI-reference object. Providers whose databases include the field ```dwc:recordedBy``` with records containing concatenated lists of names can publish those values immediately as single RDF triples using ```dwc:recordedBy``` as the predicate and containing one literal object which is the concatenated list string. In this manner, publication of data as RDF can begin immediately using the ```dwc:``` terms without the requirement that every resource have an assigned IRI GUID. As the community develops mechanisms for discovering and reusing IRIs, data providers can make the shift to ```dwciri:``` terms. As a part of their data updating and cleaning process providers or aggregators may eventually parse the strings, search a community IRI repository, and match strings with existing IRIs or create new ones if they do not already exist. #### 1.4.4 Limitations of this guide (non-normative) -This guide provides general guidance about how Darwin Core property terms should be used as RDF predicates and specifies that Darwin Core class terms should be used in ```rdf:type``` declarations ([Section 2.3.1.5](./index.htm#2.3.1.5_Classes_to_be_used_for_type_declarations_of_resources_de)). However, the Darwin Core standard does not specify precisely which resources should be included as instances of its classes nor does it declare domains for its property terms. Although the [Darwin Core Quick Reference Guide](http://rs.tdwg.org/dwc/terms/index.htm) suggests which properties might be applied to instances of classes by organizing those property terms under class headings, Darwin Core leaves specific decisions about type declaration and property assignment to community consensus. Some examples which show varying approaches to assigning resources to Darwin Core classes and connecting them with object properties defined outside Darwin Core are provided in the [Darwin Core informative ancillary web pages](https://github.com/tdwg/rdf/blob/master/DwCAncillary.md). +This guide provides general guidance about how Darwin Core property terms should be used as RDF predicates and specifies that Darwin Core class terms should be used in ```rdf:type``` declarations ([Section 2.3.1.5](#2315-classes-to-be-used-for-type-declarations-of-resources-described-using-darwin-core-normative)). However, the Darwin Core standard does not specify precisely which resources should be included as instances of its classes nor does it declare domains for its property terms. Although the [Darwin Core Quick Reference Guide](http://rs.tdwg.org/dwc/terms/index.htm) suggests which properties might be applied to instances of classes by organizing those property terms under class headings, Darwin Core leaves specific decisions about type declaration and property assignment to community consensus. Some examples which show varying approaches to assigning resources to Darwin Core classes and connecting them with object properties defined outside Darwin Core are provided in the [Darwin Core informative ancillary web page](https://github.com/tdwg/rdf/blob/master/DwCAncillary.md). ### 1.5 Roles of text strings as values of properties in dwc: namespace (non-normative) @@ -188,7 +188,7 @@ A number of Darwin Core properties specify that their values should be an identi #### 1.5.5 Implications for expressing Darwin Core string values as RDF (non-normative) -To facilitate achieving the clarity that RDF makes possible, this guide provides different approaches for each of these four situations in which string values are provided. In the first three situations, the existing term from Darwin Core namespace ```dwc:``` can be used with a literal value to expose the string value as it currently exists in a text-based database. This allows for the rapid deployment of RDF described in [Section 1.4.3](./index.htm#1.4.3_Use_of_Darwin_Core_terms_in_RDF) and is all that is required in the first situation ([Section 1.5.1](./index.htm#1.5.1_Situations_where_a_string_is_the_standard_means_for_encodi)). In the second situation ([Section 1.5.2](./index.htm#1.5.2_Situations_where_a_string_value_serves_as_a_proxy_for_a_no)), analogues of the existing ```dwc:``` terms have been created in the ```dwciri:``` namespace which are intended to be used with IRI-references rather than names. In the third situation ([Section 1.5.3](./index.htm#1.5.3_Situations_where_a_string_value_serves_as_a_keyword_to_ena)), new ```dwciri:``` terms have been created to relate subject resources to IRI-identified object resources which form part of a hierarchy. If such a hierarchy already exists, the need is eliminated for separate terms (“convenience terms”) which relate the subject resource to all parts of the hierarchy, although those terms can still be used if they are convenient for facilitating string searches. The last situation ([Section 1.5.4](./index.htm#1.5.4_Situations_where_a_string_value_serves_as_an_identifier)) is more complex and a significant part of the implementation guide is devoted to the ways in which RDF should be structured to handle various kinds of identifiers. +To facilitate achieving the clarity that RDF makes possible, this guide provides different approaches for each of these four situations in which string values are provided. In the first three situations, the existing term from Darwin Core namespace ```dwc:``` can be used with a literal value to expose the string value as it currently exists in a text-based database. This allows for the rapid deployment of RDF described in [Section 1.4.3](#143-use-of-darwin-core-terms-in-rdf-normative) and is all that is required in the first situation ([Section 1.5.1](#151-situations-where-a-string-is-the-standard-means-for-encoding-a-resource-non-normative)). In the second situation ([Section 1.5.2](#152-situations-where-a-string-value-serves-as-a-proxy-for-a-non-information-resource-non-normative)), analogues of the existing ```dwc:``` terms have been created in the ```dwciri:``` namespace which are intended to be used with IRI-references rather than names. In the third situation ([Section 1.5.3](#153-situations-where-a-string-value-serves-as-a-keyword-to-enable-searching-non-normative)), new ```dwciri:``` terms have been created to relate subject resources to IRI-identified object resources which form part of a hierarchy. If such a hierarchy already exists, the need is eliminated for separate terms (“convenience terms”) which relate the subject resource to all parts of the hierarchy, although those terms can still be used if they are convenient for facilitating string searches. The last situation ([Section 1.5.4](#154-situations-where-a-string-value-serves-as-an-identifier-non-normative)) is more complex and a significant part of the implementation guide is devoted to the ways in which RDF should be structured to handle various kinds of identifiers. ## 2 Implementation Guide @@ -216,7 +216,7 @@ GeoSciML Geologic Timescale model Ontology | gsml: | http://resource.geosciml.or Virtual International Authority File | viaf: | http://viaf.org/viaf/ Extensible Metadata Platform Rights Management vocabulary | xmpRights: | http://ns.adobe.com/xap/1.0/rights/ -For brevity, the examples do not include namespace declarations, nor an ```rdf:RDF``` container element. If a user wishes to test or validate an example, insert it into the container element defined in [Section 2.1.2](./index.htm#2.1.2_Generating_graphical_diagrams_and_triple_tables_for_the_ex). +For brevity, the examples do not include namespace declarations, nor an ```rdf:RDF``` container element. If a user wishes to test or validate an example, insert it into the container element defined in [Section 2.1.2](#212-generating-graphical-diagrams-and-triple-tables-for-the-examples-non-normative). #### 2.1.2 Generating graphical diagrams and triple tables for the examples (non-normative) @@ -331,9 +331,9 @@ Turtle owl:sameAs . ``` -Since LSIDs follow the URN IRI scheme, they can serve as the subject of any RDF triple. However, it is better to use the http-proxied form as the subject (i.e., the value of the ```rdf:about``` attribute) in the description of the resource. See the [Darwin Core informative ancillary web pages](https://github.com/tdwg/rdf/blob/master/DwCAncillary.md) for more information about implementing LSIDs. +Since LSIDs follow the URN IRI scheme, they can serve as the subject of any RDF triple. However, it is better to use the http-proxied form as the subject (i.e., the value of the ```rdf:about``` attribute) in the description of the resource. See the [Darwin Core informative ancillary web page](https://github.com/tdwg/rdf/blob/master/DwCAncillary.md) for more information about implementing LSIDs. -This practice can be extended to any URN. For example, ```owl:sameAs``` can be used to relate the URN to its HTTP-proxied equivalent in a manner analogous to Example 3. +This practice can be extended to any URN. For example, ```owl:sameAs``` can be used to relate the URN to its HTTP-proxied equivalent `````` in a manner analogous to Example 3. ### 2.3 Predicates (normative)