BOA: BOotstrapping linked datA

  • screenshot

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.

Source Code Wiki Homepage Download Issues

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:

Extracting Multilingual Natural-Language Patterns for RDF Predicates from Daniel Gerber

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

BOA - Bootstrapping Linked Data from Daniel Gerber

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.

Project Team

Publications

by (Editors: ) [BibTex of ]

News

Preview release of conTEXT for Linked-Data based text analytics ( 2014-01-17T15:04:51+01:00 by Dr. Ali Khalili)

2014-01-17T15:04:51+01:00 by Dr. Ali Khalili

We are happy to announce the preview release of conTEXT — a platform for lightweight text analytics using Linked Data. conTEXT enables social Web users to semantically analyze text corpora (such as blogs, RSS/Atom feeds, Facebook, G+, Twitter or SlideWiki. Read more about "Preview release of conTEXT for Linked-Data based text analytics"