从 .NET 创建 Protege Readable Ontology
Create Protege Readable Ontology from .NET
我正在尝试从 .NET 创建一个可读的门生 ontology。
我从一个 4GB 的 .nt 文件开始,解析出所需的 类 和我希望使用的实例。这些存储在内存中,因为我将它减少到不到 1 分钟和大约 1GB。它们现在的形式是 Dictionary<String,HashSet<String>>
。下一步是获取该数据并将其移动到 OWL Ontology 中。有什么地方可以开始如何手动循环并执行此操作?我的所有研究都指向我使用 Manchester OWL,但我能找到的所有东西都与不符合我需要的现有工具一起使用。我正在寻找可能使用 LINQ to XML 做一个简单的循环,我不确定如何格式化它或在哪里寻找如何做到这一点。
谢谢
吉米
你可以从这个开始
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")
});
}
}
}
我正在尝试从 .NET 创建一个可读的门生 ontology。
我从一个 4GB 的 .nt 文件开始,解析出所需的 类 和我希望使用的实例。这些存储在内存中,因为我将它减少到不到 1 分钟和大约 1GB。它们现在的形式是 Dictionary<String,HashSet<String>>
。下一步是获取该数据并将其移动到 OWL Ontology 中。有什么地方可以开始如何手动循环并执行此操作?我的所有研究都指向我使用 Manchester OWL,但我能找到的所有东西都与不符合我需要的现有工具一起使用。我正在寻找可能使用 LINQ to XML 做一个简单的循环,我不确定如何格式化它或在哪里寻找如何做到这一点。
谢谢 吉米
你可以从这个开始
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")
});
}
}
}