BOA

http://aksw.org/Projects/BOA an entity of type: AlumniProject

Most knowledge sources on the Data Web were extracted from structured or semi-structured data. Thus, they encompass solely a small fraction of the information available on the document-oriented Web. BOA is an iterative bootstrapping strategy for extracting RDF from unstructured data.
xsd:string
DeFacto; LIMES

General Overview

Most knowledge sources on the Data Web were extracted from structured or semi-structured data. Thus, they encompass solely a small fraction of the information available on the document-oriented Web. In this paper, we present BOA, an iterative bootstrapping strategy for extracting RDF from unstructured data. The idea behind BOA is to use the Data Web as background knowledge for the extraction of natural language patterns that represent predicates found on the Data Web. These patterns are used to extract instance knowledge from natural language text. This knowledge is finally fed back into the Data Web, therewith closing the loop. We evaluate our approach on two data sets using DBpedia as background knowledge. Our results show that we can extract several thousand new facts in one iteration with very high accuracy. Moreover, we provide the first repository of natural language representations of predicates found on the Data Web.

Presentation

The following presentation was held at EKAW 2012 in Galway:

The following presentation was held at We~KEx at ISWC 2011 in Bonn:

Generated Knowledge

The generated knowledge can be accessed at the BOA dydra repository.

Library of Natural-Language Representations of Formal Relations

The results of the BOA approach can be downloaded in form of an Lucene Index. The pattern in this index were derived from applying DBpedia background knowledge on the English Wikipedia. The index was created as follows:

Document doc = new Document();
doc.add(new Field("uri", mapping.getProperty().getUri(), Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("nlr", pattern.getNaturalLanguageRepresentationWithoutVariables().trim(), Field.Store.YES, Field.Index.ANALYZED));
doc.add(new NumericField("confidence", Field.Store.YES, true).setDoubleValue(pattern.getConfidence()));
writer.addDocument(doc);%%

You can query the index like this:

Query query1 = new TermQuery(new Term("nlr", searchPhrase));
Query query2 = NumericRangeQuery.newDoubleRange("confidence", confidenceThreshold, 1D, true, true);

BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(query1, BooleanClause.Occur.MUST);
booleanQuery.add(query2, BooleanClause.Occur.MUST);
				
ScoreDoc[] hits = indexSearcher.search(booleanQuery, 100).scoreDocs;

for (int i = 0; i < hits.length && i < 5; i++) {
			
    System.out.println(indexSearcher.doc(hits[i].doc).get("uri"));
    System.out.println(indexSearcher.doc(hits[i].doc).get("nlr"));
    System.out.println(indexSearcher.doc(hits[i].doc).get("confidence"));
}

You can download this index here. Keep in mind that you need Lucene in at least Version 3.0. We applied very strict rules during pattern filtering, so very few patterns were actually generated. Also there are no score constrains applied to the patterns contained, leading to very weak patterns inside the index.

sysont:Markdown
<http://code.google.com/p/boa/source/checkout>
Dr. Daniel Gerber
<http://code.google.com/p/boa/>

inverse relations

3 resources Prof. Dr. Axel-C. Ngonga Ngomo
Dr. Daniel Gerber
René Speck
by (Editors: ) [Bibsonomy of ]
4.819571ms