Class: Glossarist::Transforms::ConceptToGlossTransform
- Inherits:
-
Object
- Object
- Glossarist::Transforms::ConceptToGlossTransform
- Defined in:
- lib/glossarist/transforms/concept_to_gloss_transform.rb
Overview
Transforms Glossarist domain model objects into ontology-faithful RDF using lutaml-model serializable view classes.
Creates GlossConcept/GlossLocalizedConcept/GlossDesignation instances and delegates Turtle/JSON-LD serialization to lutaml-model.
Constant Summary collapse
- GLOSS =
Rdf::Namespaces::GlossaristNamespace.uri
- SKOS =
Rdf::Namespaces::SkosNamespace.uri
- XL =
Rdf::Namespaces::SkosxlNamespace.uri
- ISO =
Rdf::Namespaces::IsoThesNamespace.uri
- DCT =
Rdf::Namespaces::DctermsNamespace.uri
- RDF_NS =
Rdf::Namespaces::RdfNamespace.uri
- REL_PROPERTY_MAP =
{ "broader" => "#{SKOS}broader", "narrower" => "#{SKOS}narrower", "broader_generic" => "#{ISO}broaderGeneric", "narrower_generic" => "#{ISO}narrowerGeneric", "broader_partitive" => "#{ISO}broaderPartitive", "narrower_partitive" => "#{ISO}narrowerPartitive", "broader_instantial" => "#{ISO}broaderInstantial", "narrower_instantial" => "#{ISO}narrowerInstantial", "equivalent" => "#{SKOS}exactMatch", "close_match" => "#{SKOS}closeMatch", "broad_match" => "#{SKOS}broadMatch", "narrow_match" => "#{SKOS}narrowMatch", "related_match" => "#{SKOS}relatedMatch", "see" => "#{SKOS}related", "deprecates" => "#{GLOSS}deprecates", "supersedes" => "#{GLOSS}supersedes", "superseded_by" => "#{GLOSS}supersededBy", "compare" => "#{GLOSS}compares", "contrast" => "#{GLOSS}contrasts", "sequentially_related_concept" => "#{GLOSS}sequentiallyRelated", "spatially_related_concept" => "#{GLOSS}spatiallyRelated", "temporally_related_concept" => "#{GLOSS}temporallyRelated", "homograph" => "#{GLOSS}hasHomograph", "false_friend" => "#{GLOSS}hasFalseFriend", "related_concept_broader" => "#{GLOSS}relatedConceptBroader", "related_concept_narrower" => "#{GLOSS}relatedConceptNarrower", "abbreviated_form_for" => "#{GLOSS}abbreviatedFormFor", "short_form_for" => "#{GLOSS}shortFormFor", }.freeze
- DATE_TYPE_MAP =
{ "accepted" => "#{GLOSS}status/accepted", "amended" => "#{GLOSS}status/amended", "retired" => "#{GLOSS}status/retired", }.freeze
Class Method Summary collapse
- .transform(managed_concept, options = {}) ⇒ Object
- .transform_document(concepts, options = {}) ⇒ Object
Instance Method Summary collapse
- #build ⇒ Object
- #build_document(concepts) ⇒ Object
-
#initialize(managed_concept, options = {}) ⇒ ConceptToGlossTransform
constructor
A new instance of ConceptToGlossTransform.
- #to_jsonl_line ⇒ Object
- #to_jsonld(concepts_or_concept = nil) ⇒ Object
- #to_turtle(concepts_or_concept = nil) ⇒ Object
Constructor Details
#initialize(managed_concept, options = {}) ⇒ ConceptToGlossTransform
Returns a new instance of ConceptToGlossTransform.
63 64 65 66 |
# File 'lib/glossarist/transforms/concept_to_gloss_transform.rb', line 63 def initialize(managed_concept, = {}) @concept = managed_concept @options = end |
Class Method Details
.transform(managed_concept, options = {}) ⇒ Object
55 56 57 |
# File 'lib/glossarist/transforms/concept_to_gloss_transform.rb', line 55 def self.transform(managed_concept, = {}) new(managed_concept, ).build end |
.transform_document(concepts, options = {}) ⇒ Object
59 60 61 |
# File 'lib/glossarist/transforms/concept_to_gloss_transform.rb', line 59 def self.transform_document(concepts, = {}) new(nil, ).build_document(concepts) end |
Instance Method Details
#build ⇒ Object
68 69 70 |
# File 'lib/glossarist/transforms/concept_to_gloss_transform.rb', line 68 def build build_gloss_concept(concept) end |
#build_document(concepts) ⇒ Object
72 73 74 75 76 |
# File 'lib/glossarist/transforms/concept_to_gloss_transform.rb', line 72 def build_document(concepts) gloss_concepts = concepts.map { |c| build_gloss_concept(c) } doc = Rdf::GlossDocument.new(concepts: gloss_concepts) Rdf::GlossDocument.to_turtle(doc) end |
#to_jsonl_line ⇒ Object
104 105 106 107 108 109 |
# File 'lib/glossarist/transforms/concept_to_gloss_transform.rb', line 104 def to_jsonl_line return "" unless @concept gc = build_gloss_concept(@concept) Rdf::GlossConcept.to_jsonld(gc) end |
#to_jsonld(concepts_or_concept = nil) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/glossarist/transforms/concept_to_gloss_transform.rb', line 90 def to_jsonld(concepts_or_concept = nil) if concepts_or_concept.is_a?(Array) gloss_concepts = concepts_or_concept.map { |c| build_gloss_concept(c) } doc = Rdf::GlossDocument.new(concepts: gloss_concepts) Rdf::GlossDocument.to_jsonld(doc) else target = concepts_or_concept || @concept return "" unless target gc = build_gloss_concept(target) Rdf::GlossConcept.to_jsonld(gc) end end |
#to_turtle(concepts_or_concept = nil) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/glossarist/transforms/concept_to_gloss_transform.rb', line 78 def to_turtle(concepts_or_concept = nil) if concepts_or_concept.is_a?(Array) build_document(concepts_or_concept) else target = concepts_or_concept || @concept return "" unless target gc = build_gloss_concept(target) Rdf::GlossConcept.to_turtle(gc) end end |