public void SaveDocument(AMRDocument document) { using (var client = new GraphClient(new Uri("http://localhost:7474/db/data"), "neo4j", "Pa$$w0rd")) { client.Connect(); var docs = client.Cypher.Create("(d:Document {newObject})") .WithParam("newObject", new { Id = document.Id }) .Return(d => d.As <AMRDocument>()) .Results.First(); foreach (var edu in document.EDUSentences.OrderBy(c => c.Id)) { client.Cypher.Create("(d:EduSentence {newObject})") .WithParam("newObject", new { Id = edu.Id, edu.value }).ExecuteWithoutResults(); client.Cypher.Match("(doc:Document)", "(edunode:EduSentence)") .Where((AMRDocument doc) => doc.Id == docs.Id) .AndWhere((AMREduSentence edunode) => edunode.Id == edu.Id) .Create("(doc)-[:HAS]->(edunode)").ExecuteWithoutResults(); SaveNode(client, edu.Root, null, edu); CreateRootRelation(client, edu, edu.Root); } } }
static void Main(string[] args) { var tf = new edu.stanford.nlp.trees.LabeledScoredTreeFactory(new CustomStringLabelFactory()); var str = "(x2 / score :null_edge(x1 / null_tag) :null_edge(x3 / null_tag) :time(xap0 / before :quant(x5 / temporal - quantity :unit(y / year) :null_edge(x4 / null_tag))))"; var input = new java.io.StringReader(str); var treeReader = new edu.stanford.nlp.trees.PennTreeReader(input, tf, new CustomTreeNormalizer(), new CustomTokenizerAdapter(input)); var t = treeReader.readTree(); TreePrint p = new TreePrint("penn"); p.printTree(t); //READ RST INFORMATION RSTTree tree = new RSTTree("lincon"); tree.Load(Path.Combine(Root, "rst.xml")); tree.EvaluateODonell(); var sum = tree.Summarize(); //READ AMR INFORMATION FOR EACH EDU AND ASSOCIATTE THE ODONELL SCORE IGraph g = new Graph(); var parser = new VDS.RDF.Parsing.RdfXmlParser(); // NTriplesParser ntparser = new NTriplesParser(); parser.Load(g, Path.Combine(Root, "output.xml")); var document = new AMRDocument(); document.Load(g); foreach (var item in document.EDUSentences) { item.ApplyRSTWeight(sum.Where(c => c.edu == item.Id).Select(c => c.Weight).First()); } //var rstdocument = new RSTDocumentRepository(); //rstdocument.DeleteAllNodes(); //rstdocument.Save(tree); AMRNEORepository repo = new AMRNEORepository(); repo.DeleteAllNodes(); repo.SaveDocument(document); //var ids = Helper.ReadIds(g); //foreach (var item in ids) //{ // item.sentence = Helper.GetSentence(g, item); // item.AddNodes(g); // if (item.id == 22) // { // Console.WriteLine(item.urlid); // Console.WriteLine(item.sentence); // Console.WriteLine(item.Root.uriid); // Console.WriteLine(item.Root.Term.uriid); // Console.WriteLine(item.Root.Term.type); // } //} //SparqlQueryParser qparser = new SparqlQueryParser(); ////Then we can parse a SPARQL string into a query //StringBuilder querystr = new StringBuilder(); //querystr.AppendLine("PREFIX amr-core: <http://amr.isi.edu/rdf/core-amr#>"); //querystr.AppendLine("PREFIX amr-data: <http://amr.isi.edu/amr_data#>"); //querystr.AppendLine("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>"); //querystr.AppendLine("PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>"); //querystr.AppendLine("PREFIX amr-terms: <http://amr.isi.edu/rdf/amr-terms#>"); ////querystr.AppendLine("SELECT ?p WHERE { ?s rdf:type ?p }"); ////querystr.Append("SELECT ?s ?sentence ?id ?root ?rtype ?amrtype"); //querystr.Append("SELECT ?root ?rtype ?amrtypelbl "); //querystr.Append("WHERE {"); //querystr.Append("?s amr-core:has-sentence ?sentence."); //querystr.Append("?s amr-core:has-id ?id."); //querystr.Append("?s amr-core:root ?root. "); //querystr.Append("?root rdf:type ?rtype. "); //querystr.Append("?rtype rdf:type ?amrtype. "); //querystr.Append("?amrtype rdfs:label ?amrtypelbl. "); //querystr.Append("}"); //SparqlQuery q = qparser.ParseFromString(querystr.ToString()); ////http://amr.isi.edu/rdf/core-amr#has-id //var rset = (SparqlResultSet)g.ExecuteQuery(q); //var SB = new StringBuilder(); //if (rset.Result && rset.Results.Count > 0) //{ // foreach (var result in rset.Results) // { // foreach (var r in result) // { // Console.WriteLine(r.Key + " " + r.Value); // } // //Do what you want with each result // } //} //File.WriteAllText("dic.txt", SB.ToString()); //http://amr.isi.edu/amr_data/22#root01 //foreach (var item in g.Triples) //{ // Console.WriteLine(item.Subject); //} //foreach (var node in g.Nodes) //{ // Console.WriteLine(node.ToString()); //} //g.SaveToFile("output.rdf"); }