import * as React from "react" import {TextField} from "@material-ui/core"; import Button from "@material-ui/core/Button"; import Srl from "../../data/Srl"; import SrlEditable from "../SrlEditable"; import Typography from "@material-ui/core/Typography"; import Divider from "@material-ui/core/Divider"; import {exampleSrl} from "./exampleSrl"; import Snackbar from "@material-ui/core/Snackbar"; import {FrameLabelSet} from "../../data/FrameLabelSet"; function useFrameLabelSet() { const [predicateLabelsStringified, setPredicateLabelsStringified] = React.useState("did-what"); const [argLabelsStringified, setArgLabelsStringified] = React.useState("who to-whom for-whom when where why how from to"); const predicateLabels = predicateLabelsStringified.split(/\s+/).filter(x=>x.length>0); const argLabels = argLabelsStringified.split(/\s+/).filter(x=>x.length>0); return { frameLabelSet: new FrameLabelSet('demo-frame-set', predicateLabels, argLabels, false), spaceSeparatedPredLabels: predicateLabelsStringified, spaceSeparatedArgLabels: argLabelsStringified, setSpaceSeparatedPredLabels: setPredicateLabelsStringified, setSpaceSeparatedArgLabels: setArgLabelsStringified }; } export default function EditableDemo() { const {frameLabelSet, spaceSeparatedArgLabels, spaceSeparatedPredLabels, setSpaceSeparatedArgLabels, setSpaceSeparatedPredLabels} = useFrameLabelSet(); const [sentence, setSentence] = React.useState("John baked Mary a cake ."); const tokens = sentence.split(/\s+/).filter(x=>x.length>0); const [srl, setSrl] = React.useState(null); const [copyToastOpen, setCopyToastOpen] = React.useState(false); function handleExportXML() { if(!srl) return; const doc = new DOMParser().parseFromString("", "application/xml"); const textArea = document.createElement('textarea'); textArea.value = srl.toXml(doc).outerHTML; document.body.appendChild(textArea); textArea.select(); document.execCommand('copy'); document.body.removeChild(textArea); setCopyToastOpen(true); } function handleAnnotate() { setSrl(Srl.createEmptySrlFromTokens(tokens, frameLabelSet.name)); } const annotateEnabled = frameLabelSet.targets.length > 0 && frameLabelSet.args.length > 0 && tokens.length > 0; return

SRL manual annotator demo

setSpaceSeparatedPredLabels(e.target.value)}/>

setSpaceSeparatedArgLabels(e.target.value)}/>

setSentence(e.target.value)}/>

  

{srl && setSrl(srl)} frameLabelSets={[frameLabelSet]}/> }
setCopyToastOpen(false)} message="XML copied to clipboard" />
}