Posts Tagged ‘Open Calais’

Thea Open Calais Prolog wrapper library

Wednesday, February 10th, 2010

Introduction

Open Calais is a Web service provided by Thomson Reuters. Open Calais analyses content using NLP and semantic tecniques and returns an RDF based response containing entities and relationships identified in the source and associated metadata.

thea_opencalais is a Prolog wrapper for accessing Open Calais and process the results. It is an application of Thea Prolog library for OWL2 Ontologies. thea_opencalais uses the Open Calais ontology and parses the service response first into Ontology axioms and finally into prolog terms and predicates, accessible from within a Prolog program.

Example

  1. Get your Open Calais license key and assert it as a Prolog fact:
         :- assert(thea_opencalais:open_calais(license('Your open calais license key'))).
  2. Load the Open Calais Ontology into Prolog using Thea.
        :- owl_parse_rdf('owl.opencalais-4.3.xml.owl',[imports(false),clear(complete)]).

    The Ontology in this example has been already downloaded in the working directory. Originaly it can be found here

  3. Post the content of a Wikipeadia page about papal visits to the Open Calais REST service
        :- oc_rest(http('http://en.wikipedia.org/wiki/List_of_journeys_of_Pope_Benedict_XVI'),'',_X).
  4. Use Prolog provided prolog predicates to examine Markup Elements (Entities and Relationships) in the result
     :-o c_entity(A,B,C,E,D).
           A = 'http://d.opencalais.com/genericHasher-1/f545c2a6-ccd3-3095-adb0-c1c8dda96624',
           B = 'http://s.opencalais.com/1/type/em/e/Anniversary',
           C = ['http://s.opencalais.com/1/pred/name'=literal('the 500th anniversary of Catholic...')],
           E = [instance_info('http://d.opencalais.com/dochash-1/2d1827f8-c251-36b1-bfe6-043a4a.....
           D = []
  5. You can also write custom predicates to query the resulted database of Markup Elements e.g.
        quotation(Person,Quotation) :-
                oc_relation(_I,'http://s.opencalais.com/1/type/em/r/Quotation',PVList),
                pv_attr('http://s.opencalais.com/1/pred/person',PVList,Person),
                pv_attr('http://s.opencalais.com/1/pred/quote',PVList,Quotation).

Download and use

Thea and thea_opencalais are open source licensed under GPL and are hosted on github. thea_opencalais module and examples can be found in apps/opencalais folder