diff --git a/libcorpus2/CMakeLists.txt b/libcorpus2/CMakeLists.txt index c4f079e7fb6a84f250af730bcca5a2f710403883..d5ccdc18c16c25e2b67dfb00daa582e70c72f0be 100644 --- a/libcorpus2/CMakeLists.txt +++ b/libcorpus2/CMakeLists.txt @@ -38,13 +38,11 @@ set(LIBS ${LIBS} ${Boost_LIBRARIES}) SET(libcorpus2_STAT_SRC ann/annotatedsentence.cpp ann/channel.cpp - ann/iob.cpp + ann/iob.cpp ann/view.cpp chunk.cpp - document.cpp exception.cpp lexeme.cpp - relation.cpp sentence.cpp tag.cpp tagging.cpp @@ -55,7 +53,6 @@ SET(libcorpus2_STAT_SRC tokenmetadata.cpp io/cclreader.cpp io/cclwriter.cpp - io/docreader.cpp io/helpers.cpp io/fastxces.cpp io/iob-chan.cpp @@ -66,7 +63,6 @@ SET(libcorpus2_STAT_SRC io/plainwriter.cpp io/premorphwriter.cpp io/reader.cpp - io/relreader.cpp io/rft.cpp io/sax.cpp io/statwriter.cpp diff --git a/libcorpus2_whole/CMakeLists.txt b/libcorpus2_whole/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..5b491deddd48328df1ef927ce1c3b37c88be78a7 --- /dev/null +++ b/libcorpus2_whole/CMakeLists.txt @@ -0,0 +1,56 @@ +PROJECT(corpus2_whole) + +find_package(LibXML++ REQUIRED QUIET) +include_directories(${LibXML++_INCLUDE_DIRS}) +link_directories(${LibXML++_LIBRARY_DIRS}) +set(LIBS ${LIBS} ${LibXML++_LIBRARIES}) + +SET(libcorpus2_whole_SRC + corpus.cpp + corpusreader.cpp + docreader.cpp + document.cpp + poliqarpdocumentreader.cpp + relation.cpp + relreader.cpp + docreaderi.h +) + +file(GLOB_RECURSE INCS "*.h") + +if(WIN32) + add_library(corpus2_whole STATIC ${libcorpus2_whole_SRC} ${INCS}) +else(WIN32) + add_library(corpus2_whole SHARED ${libcorpus2_whole_SRC} ${INCS}) +endif(WIN32) +target_link_libraries(corpus2_whole corpus2 ${LIBS}) + +if(UNIX) + install(TARGETS corpus2_whole + LIBRARY DESTINATION lib) + + install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DESTINATION include + FILES_MATCHING PATTERN "*.h" + PATTERN ".svn" EXCLUDE + PATTERN "bin" EXCLUDE + PATTERN "build" EXCLUDE + PATTERN "CMake*" EXCLUDE + ) + install( + DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ + DESTINATION include + FILES_MATCHING PATTERN "version.h" + PATTERN "config_d.h" + ) + install( + DIRECTORY ${LIBCORPUS2_SRC_DATA_DIR}/ + DESTINATION ${LIBCORPUS2_INSTALL_DATA_DIR} + FILES_MATCHING PATTERN "*.ini" + PATTERN "*.tagset" + PATTERN ".svn" EXCLUDE + PATTERN "local/*" EXCLUDE + ) +endif(UNIX) + diff --git a/libcorpus2_whole/corpus.cpp b/libcorpus2_whole/corpus.cpp new file mode 100644 index 0000000000000000000000000000000000000000..06df2f9a0f768e609747b1edc2b0d3dd0f7826c6 --- /dev/null +++ b/libcorpus2_whole/corpus.cpp @@ -0,0 +1,28 @@ +/* + Copyright (C) 2010 Tomasz Śniatowski, Adam Radziszewski, Paweł Kędzia + Part of the libcorpus2 project + + This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3 of the License, or (at your option) +any later version. + + This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. + + See the LICENSE and COPYING files for more details. +*/ + +#include <libcorpus2_whole/corpus.h> + +namespace Corpus2 { +namespace whole{ + +Corpus::Corpus(const std::string name) : name_(name), documents_() +{ + this->current_document_ = documents_.begin(); +} + +} // whole ns +} // Corpus2 ns diff --git a/libcorpus2_whole/corpus.h b/libcorpus2_whole/corpus.h new file mode 100644 index 0000000000000000000000000000000000000000..c37c60ec65647ed06bb3bad69af8e2dd9e8ba849 --- /dev/null +++ b/libcorpus2_whole/corpus.h @@ -0,0 +1,71 @@ +/* + Copyright (C) 2010 Tomasz Śniatowski, Adam Radziszewski, Paweł Kędzia + Part of the libcorpus2 project + + This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3 of the License, or (at your option) +any later version. + + This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. + + See the LICENSE and COPYING files for more details. +*/ + +#ifndef LIBCORPUS2_WHOLE_CORPUS_H +#define LIBCORPUS2_WHOLE_CORPUS_H + +#include <vector> +#include <boost/shared_ptr.hpp> +#include <libcorpus2_whole/document.h> + +namespace Corpus2 { +namespace whole { + +/** + * Represents Corpus + */ +class Corpus +{ +public: + /** + * Corpus constructor takes one parameter: + * @arg name Name of the corpus - default is empty + */ + Corpus(const std::string name = ""); + + /** + * Adds one (readed) document to corpus + */ + void add_document(boost::shared_ptr<Document> document) { + this->documents_.push_back(document); + } + + /// Returns list of the documents from corpus + const std::vector<boost::shared_ptr<Document> > documents() const { + return this->documents_; + } + + /// Next document in corpus + /// @todo I don't know if it'll be working... It should be tested! + boost::shared_ptr<Document> next_document() { + return *(current_document_++); + } + +private: + /// Corpus name + const std::string name_; + + /// List of the documents in corpus + std::vector<boost::shared_ptr<Document> > documents_; + + /// Current document + std::vector<boost::shared_ptr<Document> >::iterator current_document_; +}; + +} // whole ns +} // Corpus2 ns + +#endif // LIBCORPUS2_WHOLE_CORPUS_H diff --git a/libcorpus2_whole/corpusreader.cpp b/libcorpus2_whole/corpusreader.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a7ce1393a5d0ff940852d87abbcecddbac9704f2 --- /dev/null +++ b/libcorpus2_whole/corpusreader.cpp @@ -0,0 +1,72 @@ +#include <fstream> +#include <boost/algorithm/string.hpp> + +#include <libcorpus2/exception.h> +#include <libcorpus2_whole/corpusreader.h> + +namespace Corpus2 { +namespace whole { + +CorpusReader::CorpusReader(const Tagset& tagset, const std::string& corpus_type) + : tagset_(tagset), corpus_type_(corpus_type) +{ + // +} + +boost::shared_ptr<Corpus> CorpusReader::read(const std::string& corpus_file_path) +{ + std::string line; + std::ifstream corpus_file(corpus_file_path.c_str()); + if (!corpus_file) { + throw Corpus2Error(corpus_file_path + " file not found!"); + } + + boost::shared_ptr<Corpus> corpus = boost::make_shared<Corpus>(corpus_file_path); + + while(getline(corpus_file, line)) { + boost::shared_ptr<DocumentReaderI> reader; + std::string ann_path, rel_path; + // split line by semicolon + std::vector<std::string> splitted_line; + boost::split(splitted_line, line, boost::is_any_of(";")); + if (splitted_line.empty()) { + continue; + } + else if (splitted_line.size() == 1) { + ann_path = splitted_line[0]; + rel_path = ""; + } + else { + ann_path = splitted_line[0]; + rel_path = splitted_line[1]; + } + reader = this->get_reader_by_type(this->corpus_type_, ann_path, rel_path); + boost::shared_ptr<Document> document = reader->read(); + corpus->add_document(document); + } + + return corpus; +} + +// +boost::shared_ptr<DocumentReaderI> CorpusReader::get_reader_by_type( + const std::string &type, + const std::string &ann_path, + const std::string &rel_path) +{ + /*if (type == "poliqarp") { + static boost::shared_ptr<PoliqarpDocumentReader> pq_doc_reader; + if (!pq_doc_reader) { + pq_doc_reader = boost::shared_ptr<PoliqarpDocumentReader>( + new PoliqarpDocumentReader(this->tagset_, ann_path)); + } + return pq_doc_reader; + } else */if (type == "document") { + return boost::shared_ptr<DocumentReader>( + new DocumentReader(this->tagset_, ann_path, rel_path)); + } + throw Corpus2Error(type + " is unknown reader type!"); +} + +} // whole ns +} // Corpus2 ns diff --git a/libcorpus2_whole/corpusreader.h b/libcorpus2_whole/corpusreader.h new file mode 100644 index 0000000000000000000000000000000000000000..62d3fe59ffe5657a05788e15490bed2fe3811467 --- /dev/null +++ b/libcorpus2_whole/corpusreader.h @@ -0,0 +1,56 @@ +#ifndef LIBCORPUS2_WHOLE_CORPUSREADER_H +#define LIBCORPUS2_WHOLE_CORPUSREADER_H + +#include <string> +#include <boost/shared_ptr.hpp> + +#include <libcorpus2_whole/docreaderi.h> +#include <libcorpus2_whole/corpus.h> +#include <libcorpus2_whole/docreader.h> + +namespace Corpus2 { +namespace whole { + +/** + * CorpusReader is a corpus-like reader + */ +class CorpusReader +{ +public: + /** + * @arg corpus_type may be: + * - document (contains relations) + * - poliqarp + */ + CorpusReader(const Tagset& tagset, const std::string& corpus_type); + + /** + * Reads corpus from given path + * @arg corpus_file Path to file contains paths to corpus files. + * Depend on corpus type, each line in this file should contains only + * path to one document from corpus or path to (in particular DocReader) + * relations and annotatons (in one line, first is path to annotations + * and second are relations -- these paths, should be separated by semicolon) + * @return Readed corpus + */ + boost::shared_ptr<Corpus> read(const std::string& corpus_file); + +protected: + /// Tagset to use, sets only onece in constructor + const Tagset& tagset_; + + /// Type of corpus, sets only once in constructor + const std::string& corpus_type_; + +private: + /// Returns reader based on corpus type (poliqarp/document) + boost::shared_ptr<DocumentReaderI> get_reader_by_type( + const std::string &type, + const std::string &ann_path, + const std::string &rel_path = ""); +}; + +} // whole ns +} // Corpus2 ns + +#endif // LIBCORPUS2_WHOLE_CORPUSREADER_H diff --git a/libcorpus2/io/docreader.cpp b/libcorpus2_whole/docreader.cpp similarity index 96% rename from libcorpus2/io/docreader.cpp rename to libcorpus2_whole/docreader.cpp index ca038e7170574a0cd8f3cfe64a1b31dcdb3eb5aa..d659ae5125f6ff0f3f5edcec40059982ed467f25 100644 --- a/libcorpus2/io/docreader.cpp +++ b/libcorpus2_whole/docreader.cpp @@ -15,11 +15,12 @@ or FITNESS FOR A PARTICULAR PURPOSE. */ #include <boost/make_shared.hpp> -#include <libcorpus2/io/docreader.h> +#include <libcorpus2_whole/docreader.h> namespace Corpus2 { DocumentReader::DocumentReader(const Tagset& tagset, const std::string &annot_path, const std::string &rela_path) + : DocumentReaderI("document") { make_readers(tagset, annot_path, rela_path); } diff --git a/libcorpus2/io/docreader.h b/libcorpus2_whole/docreader.h similarity index 88% rename from libcorpus2/io/docreader.h rename to libcorpus2_whole/docreader.h index 65422e2534c0e2725b9433579f9325b61ece4a91..d022a390f8310b761b45f266428002f7eacb1717 100644 --- a/libcorpus2/io/docreader.h +++ b/libcorpus2_whole/docreader.h @@ -14,13 +14,14 @@ or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE and COPYING files for more details. */ -#ifndef LIBCORPUS2_DOCREADER_H -#define LIBCORPUS2_DOCREADER_H +#ifndef LIBCORPUS2_WHOLE__DOCREADER_H +#define LIBCORPUS2_WHOLE__DOCREADER_H -#include <libcorpus2/relation.h> -#include <libcorpus2/document.h> +#include <libcorpus2_whole/relation.h> +#include <libcorpus2_whole/document.h> +#include <libcorpus2_whole/docreaderi.h> #include <libcorpus2/io/cclreader.h> -#include <libcorpus2/io/relreader.h> +#include <libcorpus2_whole/relreader.h> #include <boost/shared_ptr.hpp> @@ -30,7 +31,7 @@ namespace Corpus2 { * A reader for whole documents. Note that a whole document is read into memory * before any processing may take place. */ -class DocumentReader { +class DocumentReader : public DocumentReaderI { public: /** * Reads a whole document, using the two given path: the morphosyntax and @@ -85,4 +86,4 @@ private: }; } /* end ns Corpus2 */ -#endif // LIBCORPUS2_DOCREADER_H +#endif // LIBCORPUS2_WHOLE_DOCREADER_H diff --git a/libcorpus2_whole/docreaderi.h b/libcorpus2_whole/docreaderi.h new file mode 100644 index 0000000000000000000000000000000000000000..b7a8afc8ebdf7312caf2bdc7f73f3a8d13760784 --- /dev/null +++ b/libcorpus2_whole/docreaderi.h @@ -0,0 +1,31 @@ +#ifndef READERI_H +#define READERI_H + +#include <string> + +#include <libcorpus2_whole/document.h> +#include <boost/shared_ptr.hpp> + +namespace Corpus2 { + +/** + * Reader interface, + * Contains method to get reader type (such as document, poliqarp). + * Method for reading read must by implemented! + */ +class DocumentReaderI +{ +public: + DocumentReaderI(const std::string type) : type_(type) {} + + const std::string& type() const { return type_; } + + virtual boost::shared_ptr<Document> read() = 0; + +protected: + const std::string type_; +}; + +} + +#endif // READERI_H diff --git a/libcorpus2/document.cpp b/libcorpus2_whole/document.cpp similarity index 94% rename from libcorpus2/document.cpp rename to libcorpus2_whole/document.cpp index 425fd2064a83b142fea2f939c7f5f96f040e5dda..889fbf2ffbb0dde38a2bae92f12cfbb25ba9439c 100644 --- a/libcorpus2/document.cpp +++ b/libcorpus2_whole/document.cpp @@ -14,7 +14,7 @@ or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE and COPYING files for more details. */ -#include <libcorpus2/document.h> +#include <libcorpus2_whole/document.h> #include <boost/make_shared.hpp> namespace Corpus2 { diff --git a/libcorpus2/document.h b/libcorpus2_whole/document.h similarity index 87% rename from libcorpus2/document.h rename to libcorpus2_whole/document.h index 6dd488e026402bdeea5879520455e811f215bcc9..0401386dfc451cf8f07ed8fe31bfb5f278dc81ec 100644 --- a/libcorpus2/document.h +++ b/libcorpus2_whole/document.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2010 Tomasz Śniatowski, Adam Radziszewski + Copyright (C) 2010 Tomasz Śniatowski, Adam Radziszewski, Paweł Kędzia Part of the libcorpus2 project This program is free software; you can redistribute it and/or modify it @@ -14,11 +14,11 @@ or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE and COPYING files for more details. */ -#ifndef LIBCORPUS2_DOCUMENT_H -#define LIBCORPUS2_DOCUMENT_H +#ifndef LIBCORPUS2_WHOLE_DOCUMENT_H +#define LIBCORPUS2_WHOLE_DOCUMENT_H #include <libcorpus2/chunk.h> -#include <libcorpus2/relation.h> +#include <libcorpus2_whole/relation.h> #include <boost/shared_ptr.hpp> namespace Corpus2 { @@ -65,4 +65,4 @@ protected: } /* end ns Corpus2 */ -#endif // LIBCORPUS2_DOCUMENT_H +#endif // LIBCORPUS2_WHOLE_DOCUMENT_H diff --git a/libcorpus2_whole/poliqarpdocumentreader.cpp b/libcorpus2_whole/poliqarpdocumentreader.cpp new file mode 100644 index 0000000000000000000000000000000000000000..eef56ef51216990ca1476b345fa32285eff3869f --- /dev/null +++ b/libcorpus2_whole/poliqarpdocumentreader.cpp @@ -0,0 +1,23 @@ +#include <libcorpus2_whole/poliqarpdocumentreader.h> + +namespace Corpus2 { +namespace whole { + +PoliqarpDocumentReader::PoliqarpDocumentReader(const Tagset& tagset, const std::string& corpus_path) + : DocumentReaderI("poliqarp"), corpus_path_(corpus_path) +{ + this->pqr_ = boost::shared_ptr<PoliqarpReader> (new PoliqarpReader(tagset, corpus_path)); +} + +boost::shared_ptr<Document> PoliqarpDocumentReader::read() +{ + boost::shared_ptr<Document> document = boost::make_shared<Document>(); + // boost::shared_ptr<Chunk> chunk = this->pqr_->pq_->get_next_sentence(); +// if (chunk) { +// document->add_paragraph(chunk); +// } + return document; +} + +} // whole ns +} // Corpus2 ns diff --git a/libcorpus2_whole/poliqarpdocumentreader.h b/libcorpus2_whole/poliqarpdocumentreader.h new file mode 100644 index 0000000000000000000000000000000000000000..80450073174093bc5dfd1e22d3ba8ce8aa35930e --- /dev/null +++ b/libcorpus2_whole/poliqarpdocumentreader.h @@ -0,0 +1,27 @@ +#ifndef LIBCORPUS2_WHOLE_POLIQARPDOCUMENTREADER_H +#define LIBCORPUS2_WHOLE_POLIQARPDOCUMENTREADER_H + +#include <poliqarp/pqreader.h> +#include <libcorpus2_whole/docreaderi.h> +#include <libcorpus2_whole/document.h> + +namespace Corpus2 { +namespace whole { + +class PoliqarpDocumentReader : public DocumentReaderI +{ +public: + PoliqarpDocumentReader(const Tagset& tagset, const std::string& corpus_path); + + /// semantic of this methd is like get_next_document + boost::shared_ptr<Document> read(); + +private: + const std::string corpus_path_; + boost::shared_ptr<PoliqarpReader> pqr_; +}; + +} // whole ns +} // Corpus2 ns + +#endif // LIBCORPUS2_WHOLE_POLIQARPDOCUMENTREADER_H diff --git a/libcorpus2/relation.cpp b/libcorpus2_whole/relation.cpp similarity index 96% rename from libcorpus2/relation.cpp rename to libcorpus2_whole/relation.cpp index 91074b10b824515d54b06530dee43aef7e8c2b5e..163a1a6f5338c3025701470e5ee69c108c4624ca 100644 --- a/libcorpus2/relation.cpp +++ b/libcorpus2_whole/relation.cpp @@ -15,7 +15,7 @@ or FITNESS FOR A PARTICULAR PURPOSE. */ #include <boost/make_shared.hpp> -#include <libcorpus2/relation.h> +#include <libcorpus2_whole/relation.h> namespace Corpus2 { diff --git a/libcorpus2/relation.h b/libcorpus2_whole/relation.h similarity index 100% rename from libcorpus2/relation.h rename to libcorpus2_whole/relation.h diff --git a/libcorpus2/io/relreader.cpp b/libcorpus2_whole/relreader.cpp similarity index 99% rename from libcorpus2/io/relreader.cpp rename to libcorpus2_whole/relreader.cpp index 1fa75c0bcfa5f29c7a653802d4aad789314f8456..af0dcffbce51e19e8b36f765f7b578c1f86c406d 100644 --- a/libcorpus2/io/relreader.cpp +++ b/libcorpus2_whole/relreader.cpp @@ -16,7 +16,7 @@ or FITNESS FOR A PARTICULAR PURPOSE. #include <libpwrutils/foreach.h> #include <libcorpus2/exception.h> -#include <libcorpus2/io/relreader.h> +#include <libcorpus2_whole/relreader.h> #include <fstream> #include <boost/make_shared.hpp> diff --git a/libcorpus2/io/relreader.h b/libcorpus2_whole/relreader.h similarity index 95% rename from libcorpus2/io/relreader.h rename to libcorpus2_whole/relreader.h index fea4cdab732f86ae2e12d53932a2f09f728cb8ed..225c0b40ae9011621af704957ab47aa111040abf 100644 --- a/libcorpus2/io/relreader.h +++ b/libcorpus2_whole/relreader.h @@ -14,15 +14,15 @@ or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE and COPYING files for more details. */ -#ifndef LIBCORPUS2_RELREADER_H -#define LIBCORPUS2_RELREADER_H +#ifndef LIBCORPUS2_WHOLE_RELREADER_H +#define LIBCORPUS2_WHOLE_RELREADER_H #include <vector> #include <boost/shared_ptr.hpp> #include <boost/scoped_ptr.hpp> #include <libxml++/parsers/saxparser.h> -#include <libcorpus2/relation.h> +#include <libcorpus2_whole/relation.h> #include <iostream> @@ -120,4 +120,4 @@ private: }; } /* end ns Corpus2 */ -#endif // LIBCORPUS2_RELREADER_H +#endif // LIBCORPUS2_WHOLE_RELREADER_H diff --git a/poliqarp/CMakeLists.txt b/poliqarp/CMakeLists.txt index 68efa726b26a70865c59c21daa74d92375c63b86..ec9c5b970753ada02ee5c23b75db0f568d94859e 100644 --- a/poliqarp/CMakeLists.txt +++ b/poliqarp/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT(Corpus2Poliqarp) +PROJECT(corpus2_poliqarpreader) cmake_minimum_required(VERSION 2.8.0) set(c2pq_ver_major 1) set(c2pq_ver_minor 0) diff --git a/swig/CMakeLists.txt b/swig/CMakeLists.txt index 732acec748b559786f3bace19959f4e8dc264396..5e257c1d5641f62b111990d81b4524aba6f8cd1e 100644 --- a/swig/CMakeLists.txt +++ b/swig/CMakeLists.txt @@ -2,7 +2,7 @@ PROJECT(corpus2SwigWrap) -set(LIBS "corpus2" "pwrutils") +set(LIBS "corpus2" "corpus2_whole" "corpus2_poliqarpreader" "pwrutils") include_directories (${corpus2_SOURCE_DIR}) include_directories (${pwrutils_SOURCE_DIR}) diff --git a/swig/document.i b/swig/document.i index 20fc12cd5dda5736c0be436eadbe327b3eb5b4b1..5d62a33c6215b4e47a69de36a8f2132994aac214 100644 --- a/swig/document.i +++ b/swig/document.i @@ -3,7 +3,7 @@ %module libcorpusdocument %{ - #include <libcorpus2/document.h> + #include <libcorpus2_whole/document.h> %} %include "std_defs.i" diff --git a/swig/documentreader.i b/swig/documentreader.i index 6a538f840ece454a738a28c033d5aba46e4388ee..599e6b9fd67dfd8e4f78e6245435906d68f2580d 100644 --- a/swig/documentreader.i +++ b/swig/documentreader.i @@ -3,7 +3,7 @@ %module libcorpusdocumentreader %{ - #include <libcorpus2/io/docreader.h> + #include <libcorpus2_whole/docreader.h> %} %include "exception.i" diff --git a/swig/relation.i b/swig/relation.i index 89bc46d6495c5aa447583ddd6564114f8cfc2863..7ebe41a656c379135760dddc69826355be47f06a 100644 --- a/swig/relation.i +++ b/swig/relation.i @@ -3,7 +3,7 @@ %module libcorpusrelation %{ - #include <libcorpus2/relation.h> + #include <libcorpus2_whole/relation.h> %} %include "std_defs.i" diff --git a/swig/relationreader.i b/swig/relationreader.i index 0fbd550bee2608bf50123dc09bb67be89472a0d1..e6ca8148a853bd212ee5503e8266a5983d80817a 100644 --- a/swig/relationreader.i +++ b/swig/relationreader.i @@ -3,7 +3,7 @@ %module libcorpusrelationreader %{ - #include <libcorpus2/io/relreader.h> + #include <libcorpus2_whole/relreader.h> %} namespace Corpus2 {