Пример #1
0
    def __init__(self, **kwargs):
        """Initialized a instance of GraphIngester

        Args:
            es(elasticsearch.ElasticSearch): Instance of Elasticsearch
            graph(rdflib.Graph): BIBFRAM RDF Graph
            repository(flask_fedora_commons.Repository): Fedora Commons Repository
            quiet(boolean): If False, prints status of ingestion
            debug(boolean): Adds additional information for debugging purposes

        """
        self.bf2uris = {}
        self.debug = kwargs.get('debug', False)
        self.uris2uuid = {}
        self.elastic_search = kwargs.get('elastic_search', Elasticsearch())
        if not self.elastic_search.indices.exists('bibframe'):
            helper_directory = os.path.dirname(__file__)
            base_directory = helper_directory.split(
                "{0}catalog{0}helpers".format(os.path.sep))[0]
            with open(
                    os.path.join(
                        base_directory,
                        "search{0}config{0}bibframe-map.json".format(
                            os.path.sep))) as raw_json:
                bf_map = json.load(raw_json)
            self.elastic_search.indices.create(index='bibframe', body=bf_map)

        self.graph = kwargs.get('graph', default_graph())
        self.repository = kwargs.get('repository', Repository())
        self.quiet = kwargs.get('quiet', False)
Пример #2
0
    def __init__(self,
                 record,
                 elastic_search=Elasticsearch(),
                 repository=Repository()):
        """Initializes RecordIngester class

        Args:
            record: A MARC21 or MARC XML file
            elastic_search: Elasticsearch instance, defaults to localhost
            repository: Flask Fedora Commons Repository instance,
                        defaults to localhost
        """
        self.elastic_search = elastic_search
        if not self.elastic_search.indices.exists('marc'):
            self.elastic_search.indices.create('marc')
        self.record = record
        self.repository = repository
Пример #3
0
 def setUp(self):
     "Setup's repository, assumes Fedora 4 is localhost:8080"
     self.app = Flask(__name__)
     self.app.testing = True
     self.repo = Repository()
     self.repo.setup()
     self.work_uri = rdflib.URIRef(
         urllib.parse.urljoin(FEDORA_BASE_URL,
                              "/rest/test/work/{}".format(uuid.uuid4())))
     self.work_rdf = rdflib.Graph()
     self.work_rdf.add((self.work_uri, rdflib.RDFS.label,
                        rdflib.Literal("Work for Unit Test")))
     self.work_rdf.add((self.work_uri, rdflib.RDF.type, BIBFRAME.Monograph))
     self.work_rdf.add((self.work_uri, rdflib.RDF.type, SCHEMA_ORG.Book))
     self.work_rdf.add((self.work_uri, BIBFRAME.workTitle,
                        rdflib.Literal("Original Work Title")))
     # Add RDF Graph to Fedora
     new_request = urllib.request.Request(
         str(self.work_uri),
         data=self.work_rdf.serialize(format='turtle'),
         method='PUT',
         headers={"Content-Type": "text/turtle"})
     urllib.request.urlopen(new_request)
Пример #4
0
 def setUp(self):
     "Setup's repository, assumes Fedora 4 is localhost:8080"
     application = Flask(__name__)
     self.repo = Repository(app=application)
     self.repo.setup()
     self.client = self.repo.app.test_client()