Beispiel #1
0
def hypernyms_of_class_from_db(w_class, limit=sys.maxint):
    """
    Given a wikipedia class, return a list of hypernyms (as a list of strings)
    from DBpedia's Ontology Classes.

    Deprecated: uses the database, resulting in slow, unordered
    results. Use hypernyms_of_class() instead.
    """

    w_class = to_wikipedia_class(w_class)
    result = (DbpediaClass.select().join(Hypernym).join(WikiClass).where(
        WikiClass.class_name == w_class).limit(limit))
    return [from_dbpedia_class(x.dbpedia_class) for x in result]
Beispiel #2
0
def articles_of_class(w_class, limit=sys.maxint, random=False):
    """
    Given a wikipedia class, return all articles of that type.
    Set random=True to get random articles from the database (slower)
    """
    w_class = to_wikipedia_class(w_class)
    if random:
        result = (Article.select().join(ArticleClass).join(WikiClass).where(
            WikiClass.class_name == w_class).order_by(
                fn.Random()).limit(limit))
    else:
        result = (Article.select().join(ArticleClass).join(WikiClass).where(
            WikiClass.class_name == w_class).limit(limit))
    return [x.title for x in result]
Beispiel #3
0
def hypernyms_of_class_from_db(w_class, limit=sys.maxint):
    """
    Given a wikipedia class, return a list of hypernyms (as a list of strings)
    from DBpedia's Ontology Classes.

    Deprecated: uses the database, resulting in slow, unordered
    results. Use hypernyms_of_class() instead.
    """

    w_class = to_wikipedia_class(w_class)
    result = (DbpediaClass
              .select()
              .join(Hypernym)
              .join(WikiClass)
              .where(WikiClass.class_name == w_class)
              .limit(limit))
    return [from_dbpedia_class(x.dbpedia_class) for x in result]
Beispiel #4
0
def articles_of_class(w_class, limit=sys.maxint, random=False):
    """
    Given a wikipedia class, return all articles of that type.
    Set random=True to get random articles from the database (slower)
    """
    w_class = to_wikipedia_class(w_class)
    if random:
        result = (Article
                  .select()
                  .join(ArticleClass)
                  .join(WikiClass)
                  .where(WikiClass.class_name == w_class)
                  .order_by(fn.Random())
                  .limit(limit))
    else:
        result = (Article
                  .select()
                  .join(ArticleClass)
                  .join(WikiClass)
                  .where(WikiClass.class_name == w_class)
                  .limit(limit))
    return [x.title for x in result]
Beispiel #5
0
 def test_to_wikipedia_class(self):
     self.assertEqual('wikipedia-french-commune',
                      util.to_wikipedia_class('french COmmune'))
     self.assertEqual('wikipedia-french-commune',
                      util.to_wikipedia_class('wikipedia-french-commune'))
 def test_to_wikipedia_class(self):
     self.assertEqual('wikipedia-french-commune',
                      util.to_wikipedia_class('french COmmune'))
     self.assertEqual('wikipedia-french-commune',
                      util.to_wikipedia_class('wikipedia-french-commune'))