Parameters from URL query processed by E-Entity
Closed this issue · 4 comments
I'm playing with this piece of code in zend framework 2.
$request = new Request();
$request->getHeaders()->addHeaders(array(
'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
));
$request->setUri("http://api-dev.freme-project.eu/current/e-entity/dbpedia-spotlight/documents");
$request->setQuery(new Parameters([
'informat' => 'text',
'outformat' => 'json-ld', // will be fixed
'language' => 'en',
'confidence' => 0.3
]));
$request->setMethod(Request::METHOD_POST);
$request->setPost(new Parameters([
"Welcome to Berlin"
]));
$client = new Client();
$response = $client->dispatch($request);
$data = json_decode($response->getContent(), true);
return $data;
And I have this back:
'@graph' =>
array (size=44)
0 =>
array (size=10)
'@id' => string 'http://freme-project.eu/char=0,78' (length=33)
'@type' =>
array (size=3)
...
'anchorOf' => string 'informat=text&outformat=json-ld&language=en&confidence=0.3&0=Welcome+to+Berlin' (length=78)
'beginIndex' => string '0' (length=1)
'endIndex' => string '78' (length=2)
'firstWord' => string 'http://freme-project.eu/char=0,8' (length=32)
'isString' => string 'informat=text&outformat=json-ld&language=en&confidence=0.3&0=Welcome+to+Berlin' (length=78)
'lastWord' => string 'http://freme-project.eu/char=72,78' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'word' =>
array (size=21)
...
1 =>
array (size=8)
'@id' => string 'http://freme-project.eu/char=0,8' (length=32)
'@type' =>
array (size=2)
...
'anchorOf' => string 'informat' (length=8)
'beginIndex' => string '0' (length=1)
'endIndex' => string '8' (length=1)
'nextWord' => string 'http://freme-project.eu/char=8,9' (length=32)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
2 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=13,14' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '&' (length=1)
'beginIndex' => string '13' (length=2)
'endIndex' => string '14' (length=2)
'nextWord' => string 'http://freme-project.eu/char=14,23' (length=34)
'previousWord' => string 'http://freme-project.eu/char=9,13' (length=33)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
3 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=14,23' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string 'outformat' (length=9)
'beginIndex' => string '14' (length=2)
'endIndex' => string '23' (length=2)
'nextWord' => string 'http://freme-project.eu/char=23,24' (length=34)
'previousWord' => string 'http://freme-project.eu/char=13,14' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
4 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=23,24' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '=' (length=1)
'beginIndex' => string '23' (length=2)
'endIndex' => string '24' (length=2)
'nextWord' => string 'http://freme-project.eu/char=24,31' (length=34)
'previousWord' => string 'http://freme-project.eu/char=14,23' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
5 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=24,31' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string 'json-ld' (length=7)
'beginIndex' => string '24' (length=2)
'endIndex' => string '31' (length=2)
'nextWord' => string 'http://freme-project.eu/char=31,32' (length=34)
'previousWord' => string 'http://freme-project.eu/char=23,24' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
6 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=31,32' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '&' (length=1)
'beginIndex' => string '31' (length=2)
'endIndex' => string '32' (length=2)
'nextWord' => string 'http://freme-project.eu/char=32,40' (length=34)
'previousWord' => string 'http://freme-project.eu/char=24,31' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
7 =>
array (size=10)
'@id' => string 'http://freme-project.eu/char=32,40' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string 'language' (length=8)
'beginIndex' => string '32' (length=2)
'endIndex' => string '40' (length=2)
'nextWord' => string 'http://freme-project.eu/char=40,41' (length=34)
'previousWord' => string 'http://freme-project.eu/char=31,32' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
'taIdentRef' => string 'http://dbpedia.org/resource/Language' (length=36)
8 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=40,41' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '=' (length=1)
'beginIndex' => string '40' (length=2)
'endIndex' => string '41' (length=2)
'nextWord' => string 'http://freme-project.eu/char=41,43' (length=34)
'previousWord' => string 'http://freme-project.eu/char=32,40' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
9 =>
array (size=10)
'@id' => string 'http://freme-project.eu/char=41,43' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string 'en' (length=2)
'beginIndex' => string '41' (length=2)
'endIndex' => string '43' (length=2)
'nextWord' => string 'http://freme-project.eu/char=43,44' (length=34)
'previousWord' => string 'http://freme-project.eu/char=40,41' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
'taIdentRef' => string 'http://dbpedia.org/resource/English_language' (length=44)
10 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=43,44' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '&' (length=1)
'beginIndex' => string '43' (length=2)
'endIndex' => string '44' (length=2)
'nextWord' => string 'http://freme-project.eu/char=44,54' (length=34)
'previousWord' => string 'http://freme-project.eu/char=41,43' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
11 =>
array (size=10)
'@id' => string 'http://freme-project.eu/char=44,54' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string 'confidence' (length=10)
'beginIndex' => string '44' (length=2)
'endIndex' => string '54' (length=2)
'nextWord' => string 'http://freme-project.eu/char=54,55' (length=34)
'previousWord' => string 'http://freme-project.eu/char=43,44' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
'taIdentRef' =>
array (size=2)
...
12 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=54,55' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '=' (length=1)
'beginIndex' => string '54' (length=2)
'endIndex' => string '55' (length=2)
'nextWord' => string 'http://freme-project.eu/char=55,58' (length=34)
'previousWord' => string 'http://freme-project.eu/char=44,54' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
13 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=55,58' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '0.3' (length=3)
'beginIndex' => string '55' (length=2)
'endIndex' => string '58' (length=2)
'nextWord' => string 'http://freme-project.eu/char=58,59' (length=34)
'previousWord' => string 'http://freme-project.eu/char=54,55' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
14 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=58,59' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '&' (length=1)
'beginIndex' => string '58' (length=2)
'endIndex' => string '59' (length=2)
'nextWord' => string 'http://freme-project.eu/char=59,60' (length=34)
'previousWord' => string 'http://freme-project.eu/char=55,58' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
15 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=59,60' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '0' (length=1)
'beginIndex' => string '59' (length=2)
'endIndex' => string '60' (length=2)
'nextWord' => string 'http://freme-project.eu/char=60,61' (length=34)
'previousWord' => string 'http://freme-project.eu/char=58,59' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
16 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=60,61' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '=' (length=1)
'beginIndex' => string '60' (length=2)
'endIndex' => string '61' (length=2)
'nextWord' => string 'http://freme-project.eu/char=61,68' (length=34)
'previousWord' => string 'http://freme-project.eu/char=59,60' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
17 =>
array (size=10)
'@id' => string 'http://freme-project.eu/char=61,68' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string 'Welcome' (length=7)
'beginIndex' => string '61' (length=2)
'endIndex' => string '68' (length=2)
'nextWord' => string 'http://freme-project.eu/char=68,69' (length=34)
'previousWord' => string 'http://freme-project.eu/char=60,61' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
'taIdentRef' => string 'http://dbpedia.org/resource/Welcome_(2007_film)' (length=47)
18 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=68,69' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '+' (length=1)
'beginIndex' => string '68' (length=2)
'endIndex' => string '69' (length=2)
'nextWord' => string 'http://freme-project.eu/char=69,71' (length=34)
'previousWord' => string 'http://freme-project.eu/char=61,68' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
19 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=69,71' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string 'to' (length=2)
'beginIndex' => string '69' (length=2)
'endIndex' => string '71' (length=2)
'nextWord' => string 'http://freme-project.eu/char=71,72' (length=34)
'previousWord' => string 'http://freme-project.eu/char=68,69' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
20 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=71,72' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string '+' (length=1)
'beginIndex' => string '71' (length=2)
'endIndex' => string '72' (length=2)
'nextWord' => string 'http://freme-project.eu/char=72,78' (length=34)
'previousWord' => string 'http://freme-project.eu/char=69,71' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
21 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=72,78' (length=34)
'@type' =>
array (size=2)
...
'anchorOf' => string 'Berlin' (length=6)
'beginIndex' => string '72' (length=2)
'endIndex' => string '78' (length=2)
'previousWord' => string 'http://freme-project.eu/char=71,72' (length=34)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
'taIdentRef' => string 'http://dbpedia.org/resource/Berlin' (length=34)
22 =>
array (size=9)
'@id' => string 'http://freme-project.eu/char=8,9' (length=32)
'@type' =>
array (size=2)
...
'anchorOf' => string '=' (length=1)
'beginIndex' => string '8' (length=1)
'endIndex' => string '9' (length=1)
'nextWord' => string 'http://freme-project.eu/char=9,13' (length=33)
'previousWord' => string 'http://freme-project.eu/char=0,8' (length=32)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
23 =>
array (size=10)
'@id' => string 'http://freme-project.eu/char=9,13' (length=33)
'@type' =>
array (size=2)
...
'anchorOf' => string 'text' (length=4)
'beginIndex' => string '9' (length=1)
'endIndex' => string '13' (length=2)
'nextWord' => string 'http://freme-project.eu/char=13,14' (length=34)
'previousWord' => string 'http://freme-project.eu/char=8,9' (length=32)
'referenceContext' => string 'http://freme-project.eu/char=0,78' (length=33)
'sentence' => string 'http://freme-project.eu/char=0,78' (length=33)
'taIdentRef' =>
array (size=2)
...
...
I'm doing something wrong?
Hi Francisc,
The results are wrong, actually all the params are considered as content since you send the data as application/x-www-form-urlencoded
.
I am not familiar with the performing HTTP requests with the Zend framework but here are some tips that might solve you problem:
-
set the
Content-Type
header totext/plain
-
set the parameters as part of the main URI.
$request->setUri("http://api-dev.freme-project.eu/current/e-entity/dbpedia-spotlight/documents?confidence=0.3&informat=text&outformat=json-ld");
-
send the actual text as body of the request - in Zend there is
setContent
function which can be used to set the body. See http://framework.zend.com/manual/current/en/modules/zend.http.request.html#zend-stdlib-message-methods-set-content
If you are familiar with cURL, here is one line command which do the same thing
-
request against DBpedia Spotlight
curl -v -X POST -d "Welcome to Berlin." "http://api-dev.freme-project.eu/current/e-entity/dbpedia-spotlight/documents?confidence=0.3&informat=text&outformat=json-ld" -H "Content-Type: text/plain"
-
request against FREME NER (recommended)
curl -v -X POST -d "Welcome to Berlin." "http://api-dev.freme-project.eu/current/e-entity/freme-ner/documents?informat=text&outformat=json-ld&dataset=dbpedia&language=en" -H "Content-Type: text/plain"
BTW, its not good practice to write your own parser for RDF (serialized as turtle, json-ld, rdf/xml, etc.). I recommend you use well-established RDF parsers for PHP. Here are some RDF libraries you can use in PHP:
http://www.easyrdf.org/
http://wifo5-03.informatik.uni-mannheim.de/bizer/rdfapi/
http://graphite.ecs.soton.ac.uk/
Hope it helps!
Sorry, I was a little bit busy.
I will take a look and see what is happening. I'm sure all this info it will help. Thank you.
I performed the changes. Is working as expected.
Great! let us know if you need any help, ... any feedback is also more than welcome!