Oconjuntode regrasdefineasexpressõesglobaisquesãocomparadascomo textonodocumentoeasacçõesqueoanotadordeexpressõesglobaistem de executarseexistircorrespondênciade padrões.
Referênciasrelacionadas
“Descritordo anotador”napágina 96
OdescritorXMLdoanotadordeexpressõesglobais contéminformações descritivassobreoanotadordeexpressõesglobaisqueénecessáriopara executaroanotador.
“Registar”napágina 100
Todasasmensagensderegistodo anotadorde expressõesglobaissãoescritas noficheiroderegistodacolecçãoactual.
Definir regras de expressão global
Oconjuntoderegrasdefineasexpressões globaisquesãocomparadascomotexto nodocumentoe asacções queo anotadorde expressõesglobaistemde executarse existircorrespondênciade padrões.
Acercadestatarefa
Oficheirodo conjuntode regrasXMLtemde seguirasintaxederegrasdelineada noseguinteexemplo.Esteéum ficheirodoconjuntoderegrasparaoanotadorde expressões globaisdeamostra quereconhecenúmerosde telefone,URLse
endereços decorreioelectrónico.
Oelementodenívelsuperioréum elemento<ruleSet> queconsisteemumou mais elementos<rule>.Cadaelemento<rule>porsuavezdefineumaexpressão globalde JavaconsistindodeumatributoregEx bemcomo dosatributos
matchStrategy ematchType.Aacção édefinidanoelemento<createAnnotation>
queespecificaoIDdeanotaçãoeo tipodeanotação.
<?xml version="1.0" encoding="UTF-8"?>
<ruleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ruleSet.xsd">
<!-- Phone Number -->
<!-- Esta regra corresponde a diferentes formas de escrever números de telefone, por exemplo, 01234-12345, 01234 / 122-32, (001234)12345,
+49 (0) 123412345, (123) 123 1234, 1-800-IBM-4YOU -->
matchStrategy="matchAll" matchType="uima.tcas.DocumentAnnotation">
<createAnnotation id="phonenumber" type="com.ibm.es.uima.PhoneNumber">
<begin group="0"/>
<end group="0"/>
</createAnnotation>
</rule>
<!-- potential Phone Number -->
<!-- Esta regra corresponde a números que se assemelham a números de telefone mas podem também ser outra coisa. Por exemplo, 0123 1234 123, +123456789, 123 123 1234 -->
<rule regEx="(?x)(\s|\b)(
matchStrategy="matchAll" matchType="uima.tcas.DocumentAnnotation">
<createAnnotation id="potential_phonenumber"
type="com.ibm.es.uima.PotentialPhoneNumber">
<begin group="0"/>
<end group="0"/>
</createAnnotation>
</rule>
<!-- URL Annotation -->
<!-- Esta regra corresponde a URLs, por exemplo, http://www.ibm.com -->
<rule regEx="(?x)(\s|\b)(
http://[\w\-]+([\.][\w\-]+)+([/][\w\~\(\)\-\?=%\u0026\#]*)*
|www.[\w\-]+([\.][\w\-]+)+([/][\w\~\(\)\-\?=%\u0026\#]*)*
)(\s|\b)"
matchStrategy="matchAll" matchType="uima.tcas.DocumentAnnotation">
<createAnnotation id="url" type="com.ibm.es.uima.URL">
<begin group="0"/>
<end group="0"/>
</createAnnotation>
</rule>
<!-- Email Annotation -->
<!-- Esta regra corresponde a endereços de correio electrónico, por exemplo, nome@domínio.com -->
<rule regEx="(?x)(\s|\b)(
[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9]([\.-]?\w)*\.[a-zA-Z]
{2,3})(\s|\b)"
matchStrategy="matchAll" matchType="uima.tcas.DocumentAnnotation">
<createAnnotation id="email" type="com.ibm.es.uima.Email">
<begin group="0"/>
<end group="0"/>
</createAnnotation>
</rule>
</ruleSet>
Procedimento
Paracriar oconjuntoderegrasXMLparaoanotadorde expressõesglobaisque defineasexpressõesglobaispersonalizadas:
1. CrieumficheiroXML.Paraevitar errosdesintaxeXML,utilizeum editorde XMLouferramentadecriaçãodeXMLàsuaescolha.OesquemaXSD parao ficheirodoconjuntode regrasXMLédenominado ruleSet.xsd,quepode localizarna instalaçãodo EnterpriseSearchnodirectórioES_INSTALL_ROOT/
packages/uima/regex/.
2. Inclua osmapeamentosnumelemento <ruleSetxmlns=″http://www.w3.org/
2001/XMLSchema-instance″ xsi:noNamespaceSchemaLocation=″ruleSet.xsd″>. O espaçodenomeséespecificadonoatributoxmlns etemdeestarexactamente conformemostrado.
3. Adicioneum elemento<rule>quecontenhaumatributoregEx comopadrão deexpressãoglobal,umatributomatchStrategy eumatributomatchType. Oanotadorsuportatotalmentea sintaxedeexpressãoglobaldoJava 1.4.Para umaintroduçãoàsexpressõesglobaiseparavisualizara sintaxecompleta, consultea documentaçãodeJavaem http://java.sun.com/j2se/1.4.2/docs/api/
java/util/regex/Pattern.html.
matchStrategyespecifica comoprocurar,porexemplo,setodasas correspondênciastêmdeser encontradasnodocumentoousea
correspondênciade textotem deserexacta. Estãodisponíveistrêsdiferentes estratégiasde correspondência:
v matchFirstpáranaprimeira sequênciadetextoquecorresponderaopadrão global
v matchAlllocalizatodasassequênciasnumdocumentoquecorrespondeao padrãoglobal
v matchComplete apenasassequênciasdetextoquesãoumacorrespondência exacta.Por exemplo,setivermosumpadrão“foo”,apenas otermo″foo″
seria correspondido,″barrafoo″ nãoresultarianumacorrespondência.
matchTypedeterminao tipodeanotaçãoqueécomparadoà regra.Destemodo, pode restringira expressãoglobalacorresponder,porexemplo,noâmbitode umaanotaçãodotestemunhoexistente.Assim,evitaacorrespondência de demasiadoconteúdonoâmbito deumaregra.Ostipospossíveissãoostipos deanotaçãode entradapermitidosparaoanotador(definidosnodescritordo anotador),taiscomouima.tt.DocumentAnnotation,
uima.tt.ParagraphAnnotation etiposdefinidos peloutilizador,taiscomo foo.bar.MyAnnotation.Por vezes,otipode saídade umaregraéutilizado comotipo deentradadeumaregrasubsequente. matchTypepermite-lhe restringiroâmbitodaprocuradedeterminadasregras.
4. Adicioneum elemento<createAnnotation>quedefinaa acçãoqueoanotador deexpressões globaisdeveráexecutarseforencontradaumacorrespondência.
CadaelementocreateAnnotationtem doisatributos:
v ididentificade formaexclusivaaanotaçãoe éutilizadoparafazerreferência à anotação
v typeespecificao tipodeanotaçãoqueécriada
5. Adicioneosseguinteselementosde componentequedefinemaposiçãode correspondênciaparaoelemento<createAnnotation>:
v Obrigatório: <begin>especificaondea correspondênciacomeça.Este elementotemdoisatributos:
– Obrigatório:group identificaogrupode capturaJava.Podeseratribuído umvalor entre0 (correspondênciadesequênciade textocompleta)e 9 (váriosgruposde captura)
– Opcional:locationindicaumaposição dentrodo grupode
correspondência(respeitanteaoposicionamentodosparênteses),quer sejamstart(abrirparêntesecurvo)ouend (fecharparêntesecurvo).
v Obrigatório: <end>especificaondea correspondênciatermina. Esteelemento tem doisatributos:
– Obrigatório:group identificaogrupode captura.Podeser atribuídoum valorentre0(correspondência desequênciade textocompleta)e9 (gruposdecorrespondênciasubsequentesecadavezmaispequenos) – Opcional:locationindicaumaposição dentrodo grupode
correspondência(respeitanteaoposicionamentodosparênteses),quer sejamstart(abrirparêntesecurvo)ouend (fecharparêntesecurvo).
v Opcional: <setFeature>cria umafuncionalidadeeatribui estaúltima à anotação.Esteelementotem doisatributos:
– nameéonome dafuncionalidadeconformedefinidanadescriçãodo sistematipo
– typeespecificaotipo devalordafuncionalidade,Cadeia (String),Número Inteiro(Integer),Float(Flutuante)eReferência(Reference).Otipotemde sero mesmoqueotipo deintervalo definidoparaa funcionalidadena descriçãodosistematipodo anotador.
Asfuncionalidadesdotipo Referencesãoutilizadasparacriaruma ligaçãoentreduasanotaçõesparamodelar umarelaçãosemântica.O conteúdodoelemento<setFeature>temdeestardefinidoparaoiddo elemento<createAnnotation>aoqualpretendeestabelecerligação.
Conceitosrelacionados
“Ficheirodoconjuntoderegras”na página90
Noanotadorde expressõesglobais,oficheirodoconjuntoderegrasXML defineasregras,naformadeexpressõesglobais,quesãoutilizadaspara analisarodocumentode texto.