777277547289aa27dd829f34bfa8ae6900cadbe7Eugen Kuksa # Ontohub Library Includes
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Vale # Ontology Model Includes
cddb417c56f9919bcfac77232d6b54ddc003d54cEugen Kuksa include GraphStructures::SpecificFetchers::Mappings
20c94fa632f5b9a5a1b2fbc28fa46f2afe7c65c2Tim Reddehase # Multiple Class Features
62b1e45efde570fb171801dbe2716d24a4b70ad8Eugen Kuksa class Ontology::DeleteError < StandardError; end
120a4f90c07b4fdcdb5a856982a64a604ea98094Tim Reddehase "#{Hostname.url_authority}#{locid}"
19e8cd68931e22d37e1e17fb8d93c84c802a4f76Tim Reddehase :// # A uri has a separation between schema and hierarchy
f3b8c4da2db512a2ad58709c1c6bb0d93d1866bbhenning mueller (?<filename>[^/]+) # Match filename after a slash/hash
f3b8c4da2db512a2ad58709c1c6bb0d93d1866bbhenning mueller filename = match[:filename].sub(/\.[\w\d]+\z/, '')
4ae600b01cda15be2d0ef49dc3fc4ad9006911d7Tim Reddehase capitalized_name = filename.split(/[_ ]/).map(&:capitalize).join(' ')
5a102b3c56d4ac75632c7e9244ee0ce5bdbbf13aSascha Graef # Distributed or parentless ontology
5a102b3c56d4ac75632c7e9244ee0ce5bdbbf13aSascha Graef "/#{repository.path}/#{basepath}"
5a102b3c56d4ac75632c7e9244ee0ce5bdbbf13aSascha Graef # Child ontology
b997f0e2638f7b5e47f934e2f37c36767f7177d0Tim Reddehase child_name = child_name[1..-2] if child_name[0] == '<'
aa6a6b29584351c27210c27d29151fccbba61212Tim Reddehase child_name.include?('://') ? child_name : "#{locid}//#{child_name}"
f3b8c4da2db512a2ad58709c1c6bb0d93d1866bbhenning mueller self.logic ? (self.logic.name == logic_name) : false
67ea9fccbdc154cf2418f16ab8883ccfcbc77b51Model Renamer # Title for mappings
d48ad500ac13e587c1d0d9b278ac9d86cde873efEugen Kuksa raise Ontology::DeleteError unless can_be_deleted?
fbe72315a0dc517cba60b5ec6f156d64139c1f3fTim Reddehase query, args = contains_logic_translations_query(self)
fbe72315a0dc517cba60b5ec6f156d64139c1f3fTim Reddehase pluck_select([query, *args], :logically_translated).size > 1
12499f46bb83dba7d8c5ef4ab9d9e5a592f99f12Tim Reddehase affected_ontology_ids = [self.id] + imported_ontologies.pluck(:id)
8e43531a56a623f10fbc42d6b71994628c6dbc76Eugen Kuksa Sentence.original.where(ontology_id: affected_ontology_ids)
9b9d0de2b383747e766f7734b9de2521c6663e43Tim Reddehase # list all sentences defined on this ontology,
9b9d0de2b383747e766f7734b9de2521c6663e43Tim Reddehase # those who are self defined and those which
9b9d0de2b383747e766f7734b9de2521c6663e43Tim Reddehase # are imported (ImpAxioms)
d19a4dc53e3507b5fba1308c531c9e81c4f67c4dEugen Kuksa has_versions? ? current_version.basepath : read_attribute(:basepath)
d19a4dc53e3507b5fba1308c531c9e81c4f67c4dEugen Kuksa has_versions? ? current_version.file_extension : read_attribute(:file_extension)
d65fca2b4d44b4ee7a2edd5ad21af09f9efb22e9Eugen Kuksa "#{basepath}#{file_extension}"
81c8514bfc92d498e06a944ad19efc2c096b58b0Tim Reddehase # Uses where in order to force a Relation as a result
47cff67f4631a114a82f54b5f1c7da27a600bf87Eugen Kuksa # Checks if a file at the given commit (HEAD if nil) doesn't exist.
b299dbef5e70f4f78937112b19370a4d5d0e04e3Eugen Kuksa # alias_method doesn't work for this one.