创建Protege可读本体

时间:2015-09-24 19:28:26

标签: c# linq-to-xml ontology

我正在尝试创建一个可识别的可读本体。我从一个4GB的.nt文件开始,解析出我想要使用的所需类和实例。这些都存储在内存中,因为我把它记录到不到1分钟,大约1GB。它们以Dictionary>的形式出现。马上。下一步是获取该数据并将其移至OWL本体。是否有任何地方可以开始如何手动循环并执行此操作?我所有的研究都指向我使用曼彻斯特OWL,但我能找到的一切都是用于不符合我需要的现有工具。我正在寻找一个简单的循环可能与LINQ to XML,我不知道如何格式化或在哪里寻找如何做到这一点。

由于 麦

1 个答案:

答案 0 :(得分:0)

你可以从这个

开始
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string definition =
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<Ontology xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
                    " xsi:schemaLocation=\"http://www.w3.org/2002/07/owl# http://www.w3.org/2009/09/owl2-xml.xsd\"" +
                    " xmlns=\"http://www.w3.org/2002/07/owl#\"" +
                    " xml:base=\"http://example.com/myOntology\"" +
                    " ontologyIRI=\"http://example.com/myOntology\">" +
                "</Ontology>";

            XDocument doc = XDocument.Parse(definition);
            XElement ontology = (XElement)doc.FirstNode;
            XNamespace ns = ontology.Name.Namespace;

            ontology.Add(new XElement[] {
                new XElement(ns + "Prefix", new XAttribute[] {
                       new XAttribute("name", "myOnt"),
                       new XAttribute("IRI", "http://example.com/myOntology#")
                }),
                new XElement(ns + "Import", "http://example.com/someOtherOntology")
            });

        }
    }
}
​