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]
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]
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]
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]
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'))