diff --git a/rdftk_names/Cargo.toml b/rdftk_names/Cargo.toml index 1deb916..c27711e 100644 --- a/rdftk_names/Cargo.toml +++ b/rdftk_names/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rdftk_names" -version = "0.2.3" +version = "0.2.4" authors = ["Simon Johnston "] edition = "2021" description = "This crate provides a set of modules that contain the `IRI`s and `QName` strings for commonly used vocabularies. It also provides macro support for defining new namespaces in the same style as this library." diff --git a/rdftk_names/README.md b/rdftk_names/README.md index ac0430f..41455d5 100644 --- a/rdftk_names/README.md +++ b/rdftk_names/README.md @@ -74,6 +74,10 @@ namespace! { ## Changes +### Version 0.2.4 + +* Feature: add `skos` namespaces. + ### Version 0.2.3 * Feature: added missing `date` and `hex_binary` names in `xsd` namespace. diff --git a/rdftk_names/src/lib.rs b/rdftk_names/src/lib.rs index 7dbc543..0ef0bcb 100644 --- a/rdftk_names/src/lib.rs +++ b/rdftk_names/src/lib.rs @@ -216,6 +216,8 @@ pub mod rdf; pub mod rdfs; +pub mod skos; + pub mod xsd; // ------------------------------------------------------------------------------------------------ diff --git a/rdftk_names/src/skos.rs b/rdftk_names/src/skos.rs new file mode 100644 index 0000000..2db627c --- /dev/null +++ b/rdftk_names/src/skos.rs @@ -0,0 +1,104 @@ +/*! +Namespaces for SKOS, SKOS eXtension for Labels (SKOS-XL), and the ISO-25964 thesaurus vocabulary. + */ + +namespace! { + "skos", + "http://www.w3.org/2004/02/skos/core#", + { + collection, "Collection", + concept, "Concept", + concept_scheme, "ConceptScheme", + ordered_collection, "OrderedCollection", + + alt_label, "altLabel", + broad_match, "broadMatch", + broader, "broader", + broader_transitive, "broaderTransitive", + change_note, "changeNote", + close_match, "closeMatch", + definition, "definition", + editorial_note, "editorialNote", + exact_match, "exactMatch", + example, "example", + has_top_concept, "hasTopConcept", + hidden_label, "hiddenLabel", + history_note, "historyNote", + in_scheme, "inScheme", + mapping_relation, "mappingRelation", + member, "member", + member_list, "memberList", + narrow_match, "narrowMatch", + narrower, "narrower", + narrower_transitive, "narrowerTransitive", + notation, "notation", + note, "note", + pref_label, "prefLabel", + related, "related", + related_match, "relatedMatch", + scope_note, "scopeNote", + semantic_relation, "semanticRelation", + top_concept_of, "topConceptOf" + } +} + +/// SKOS eXtension for Labels (SKOS-XL) +pub mod xl { + namespace! { + "skosxl", + "http://www.w3.org/2008/05/skos-xl#", + { + label, "Label", + literal_form, "literalForm", + pref_label, "prefLabel", + alt_label, "altLabel", + label_relation, "labelRelation" + } + } +} + +/// ISO-25964 thesaurus vocabulary +pub mod iso { + namespace! { + "isothes", + "http://purl.org/iso25964/skos-thes#", + { + compound_equivalence, "CompoundEquivalence", + concept_group, "ConceptGroup", + preferred_term, "PreferredTerm", + thesaurus_array, "ThesaurusArray", + + micro_thesaurus_of, "microThesaurusOf", + plus_uf_term, "plusUFTerm", + plus_use_term, "plusUseTerm", + sub_group, "subGroup", + subordinate_array, "subordinateArray", + super_group, "superGroup", + super_ordinate, "superOrdinate", + + broader_generic, "broaderGeneric", + broader_instantial, "broaderInstantial", + broader_partitive, "broaderPartitive", + narrower_generic, "narrowerGeneric", + narrower_instantial, "narrowerInstantial", + narrower_partitive, "narrowerPartitive" + } + } +} + +/// See https://www.w3.org/2003/06/sw-vocab-status/note.html +pub mod term_status { + namespace! { + "status", + "http://www.w3.org/2003/06/sw-vocab-status/ns#", + { + term_status, "term_status" + } + } + pub const STATUS_ARCHAIC: &str = "archaic"; + pub const STATUS_DEPRECATED: &str = "deprecated"; + pub const STATUS_PROPOSED: &str = "proposed"; + pub const STATUS_STABLE: &str = "stable"; + pub const STATUS_TESTING: &str = "testing"; + pub const STATUS_UNSTABLE: &str = "unstable"; +}