Scones
From TechWiki
The scones web service system (subject concepts or named entities) is used to perform subject concepts and named entities tagging on a target document. The GATE system is used to perform the tagging. A GATE XML annotation file is returned to the user.
Developers communicate with the Search Web service using the HTTP POST method. You may request one mime types: (1) text/xml.
Contents |
Usage
This Web service is intended to be used by users that wants to tag subjects concepts and named entities using the content of a target structWSF instance.
Since the scones instance is re-using the ontologies & named entities defined on a specific structWSF instance, tagging will be performed using this specific information. So, if a specific structWSF instance is hosted, maintained and defined by an a Health related organization, than their scones web service should be better at tagging Health related documents.
So, not all scones instance are equal, and some are expected to be better at tagging specific articles than other, depending on the domain defined on a specific node.
Web Service Endpoint Information
This section describes all the permissions you need in the WSF (Web Service Framework) to send a query to this Web service endpoint, and it describes how to access it.
To access this Web service endpoint you need the proper CRUD (Create, Read, Update and Delete) permissions on a specific graph (dataset) of the WSF. Without the proper permissions on this graph you won't be able to send any queries to the endpoint.
- Create: False
- Read: True
- Update: False
- Delete: False
Here is the information needed to communicate with this Web service's endpoint. Descriptions of the parameters are included below.
Note: if a parameter has a default value, the requester can omit it and the default value will be used. Also, some baseline Web services may not offer other values than the default.
HTTP method:
- POST
Possible "Accept:" HTTP header field value:
- text/xml
URI:
- http://[...]/ws/scones/ ?document=param1&docmime=param2&application=param3®istered_ip=param4
URI dynamic parameters description:
Note: All parameters have to be URL-encoded
- param1. Content of the document to tag.
- param2. Mime type of the input document to tag. Currently supported mime types are:
- "text/plain" (default)
- param3.(default: defaultApplication). Application to use to tag the content of the input document. If other applications are available, these should be listed somewhere on the website of the agent that host the service.
- param4.Target IP address registered in the WSF.
Example of Returned XML Document
This is an example of the XML document returned by this Web service endpoint for a given document's content. This example returns GATE XML annotated document
- http://[...]/ws/scones/ parameters: document=CBC%20news%20Results%20in%20Winnipeg's%20poorest%20area%20Posted
"Accept:" HTTP header field value:
- text/xml
Result:
<?xml version=1.0 encoding=UTF-8?><GateDocument><!-- The documents features--><GateDocumentFeatures></GateDocumentFeatures><!-- The document content area with serialized nodes --><TextWithNodes><Node id="0" />CBC<Node id="3" /> <Node id="4" />news<Node id="8" />
<Node id="9" />Results<Node id="16" /> <Node id="17" />in<Node id="19" />
<Node id="20" />Winnipeg<Node id="28" />s<Node id="30" /> <Node id="31" />poorest
<Node id="38" /> <Node id="39" />area<Node id="43" /> <Node id="44" />Posted<Node id="50" />
</TextWithNodes><!-- The default annotation set --><AnnotationSet><Annotation Id="0" Type="Sentence" StartNode="0" EndNode="50"></Annotation><Annotation Id="1" Type="Token" StartNode="0" EndNode="3"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">3</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">NNP</Value>
</Feature><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">allCaps</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">cbc</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">CBC</Value>
</Feature></Annotation><Annotation Id="2" Type="SpaceToken" StartNode="3" EndNode="4"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">1</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">space</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String"> </Value>
</Feature></Annotation><Annotation Id="3" Type="Token" StartNode="4" EndNode="8"><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">lowercase</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">NN</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">news</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">news</Value>
</Feature><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">4</Value>
</Feature><Feature><Name className="java.lang.String">affix</Name>
<Value className="java.lang.String"> </Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature></Annotation><Annotation Id="4" Type="SpaceToken" StartNode="8" EndNode="9"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">1</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">space</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String"> </Value>
</Feature></Annotation><Annotation Id="5" Type="Token" StartNode="9" EndNode="16"><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">upperInitial</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">NNS</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">result</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">Results</Value>
</Feature><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">7</Value>
</Feature><Feature><Name className="java.lang.String">affix</Name>
<Value className="java.lang.String">s</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature></Annotation><Annotation Id="6" Type="SpaceToken" StartNode="16" EndNode="17"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">1</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">space</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String"> </Value>
</Feature></Annotation><Annotation Id="7" Type="Token" StartNode="17" EndNode="19"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">2</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">IN</Value>
</Feature><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">lowercase</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">in</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">in</Value>
</Feature></Annotation><Annotation Id="8" Type="SpaceToken" StartNode="19" EndNode="20"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">1</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">space</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String"> </Value>
</Feature></Annotation><Annotation Id="9" Type="Token" StartNode="20" EndNode="28"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">8</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">NNP</Value>
</Feature><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">upperInitial</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">winnipeg</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">Winnipeg</Value>
</Feature></Annotation><Annotation Id="12" Type="SpaceToken" StartNode="30" EndNode="31"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">1</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">space</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String"> </Value>
</Feature></Annotation><Annotation Id="13" Type="Token" StartNode="31" EndNode="38"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">7</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">JJS</Value>
</Feature><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">lowercase</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">poorest</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">poorest</Value>
</Feature></Annotation><Annotation Id="14" Type="SpaceToken" StartNode="38" EndNode="39"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">1</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">space</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String"> </Value>
</Feature></Annotation><Annotation Id="15" Type="Token" StartNode="39" EndNode="43"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">4</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">NN</Value>
</Feature><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">lowercase</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">area</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">area</Value>
</Feature></Annotation><Annotation Id="17" Type="Token" StartNode="44" EndNode="50"><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">upperInitial</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">VBN</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">post</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">Posted</Value>
</Feature><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">6</Value>
</Feature><Feature><Name className="java.lang.String">affix</Name>
<Value className="java.lang.String">ed</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature></Annotation><Annotation Id="16" Type="SpaceToken" StartNode="43" EndNode="44"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">1</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">space</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String"> </Value>
</Feature></Annotation><Annotation Id="18" Type="Token" StartNode="28" EndNode="30"><Feature><Name className="java.lang.String">length</Name>
<Value className="java.lang.String">2</Value>
</Feature><Feature><Name className="java.lang.String">category</Name>
<Value className="java.lang.String">POS</Value>
</Feature><Feature><Name className="java.lang.String">orth</Name>
<Value className="java.lang.String">apostrophe</Value>
</Feature><Feature><Name className="java.lang.String">root</Name>
<Value className="java.lang.String">s</Value>
</Feature><Feature><Name className="java.lang.String">kind</Name>
<Value className="java.lang.String">word</Value>
</Feature><Feature><Name className="java.lang.String">string</Name>
<Value className="java.lang.String">s</Value>
</Feature></Annotation></AnnotationSet><!-- Named annotation set --><AnnotationSet Name="Named Entities"></AnnotationSet><!-- Named annotation set --><AnnotationSet Name="Tagged Concepts"><Annotation Id="19" Type="Lookup" StartNode="39" EndNode="43"><Feature><Name className="java.lang.String">majorType</Name>
<Value className="java.lang.String"></Value></Feature><Feature><Name className="java.lang.String">heuristic_level</Name>
<Value className="java.lang.Integer">0</Value>
</Feature><Feature><Name className="java.lang.String">type</Name>
<Value className="java.lang.String">property</Value>
</Feature><Feature><Name className="java.lang.String">URI</Name>
<Value className="java.lang.String">http://purl.org/ontology/muni#area</Value>
</Feature></Annotation><Annotation Id="20" Type="Lookup" StartNode="39" EndNode="43"><Feature><Name className="java.lang.String">majorType</Name>
<Value className="java.lang.String"></Value></Feature><Feature><Name className="java.lang.String">heuristic_level</Name>
<Value className="java.lang.Integer">0</Value>
</Feature><Feature><Name className="java.lang.String">type</Name>
<Value className="java.lang.String">property</Value>
</Feature><Feature><Name className="java.lang.String">URI</Name>
<Value className="java.lang.String">http://purl.org/ontology/muni#area</Value>
</Feature><Feature><Name className="java.lang.String">propertyURI</Name>
<Value className="java.lang.String">http://purl.org/ontology/iron#prefLabel</Value>
</Feature><Feature><Name className="java.lang.String">propertyValue</Name>
<Value className="java.lang.String">area</Value>
</Feature></Annotation></AnnotationSet></GateDocument>
HTTP Status Codes
Here are the possible HTTP status (error) codes returned by this Web service endpoint.
On error code and the specific error, a different message description can be issued (meaning a different error has been returned).
- Code:200
- Message:OK
- Code:400
- Message: Bad Request
- Message description: No documents URI specified for this request
- Message description: Scones is not configured.
- Message description: Scones is not initialized.
- Message description: Scones is being initialized.
- Message description: Document MIME type not supported.
- Message description: Document empty
- Code:406
- Message:Not Acceptable
- Message description:Unacceptable mime type requested
- Code:500
- Message:Internal Error