c# - 我怎样才能像原始文件一样保存我的 n3 文件格式

标签 c# n3 dotnetrdf

我用 c# 和 dotnetrdflibrery 编程'我有一个 n3 文件,我在记事本中打开它并在下面显示它

@prefix my: <http://www.codeproject.com/KB/recipes/n3_notation#>.

my:Peter a my:person, my:boy;
    my:suffers my:acrophobia, my:insomnia, my:xenophobia;
    my:name "Peter";
    my:likes my:Kate.

my:Mark a my:person, my:boy;
    my:suffers my:insomnia;
    my:name "Mark".

my:Kate a my:person, my:girl;
    my:name "Kate".

当我用 g.savetofile() 保存这个文件时,它以我不喜欢的这种格式保存它,我认为这不太好看:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix my: <http://www.codeproject.com/KB/recipes/n3_notation#>.

<http://www.codeproject.com/KB/recipes/n3_notation#Kate> <http://www.codeproject.com/KB/recipes/n3_notation#name> "Kate".
<http://www.codeproject.com/KB/recipes/n3_notation#Kate> a <http://www.codeproject.com/KB/recipes/n3_notation#girl>.
<http://www.codeproject.com/KB/recipes/n3_notation#Kate> a <http://www.codeproject.com/KB/recipes/n3_notation#person>.
<http://www.codeproject.com/KB/recipes/n3_notation#Mark> <http://www.codeproject.com/KB/recipes/n3_notation#name> "Mark".
<http://www.codeproject.com/KB/recipes/n3_notation#Mark> <http://www.codeproject.com/KB/recipes/n3_notation#suffers> <http://www.codeproject.com/KB/recipes/n3_notation#insomnia>.
<http://www.codeproject.com/KB/recipes/n3_notation#Mark> a <http://www.codeproject.com/KB/recipes/n3_notation#boy>.
<http://www.codeproject.com/KB/recipes/n3_notation#Mark> a <http://www.codeproject.com/KB/recipes/n3_notation#person>.
<http://www.codeproject.com/KB/recipes/n3_notation#Peter> <http://www.codeproject.com/KB/recipes/n3_notation#likes> <http://www.codeproject.com/KB/recipes/n3_notation#Kate>.
<http://www.codeproject.com/KB/recipes/n3_notation#Peter> <http://www.codeproject.com/KB/recipes/n3_notation#name> "Peter".
<http://www.codeproject.com/KB/recipes/n3_notation#Peter> <http://www.codeproject.com/KB/recipes/n3_notation#suffers> <http://www.codeproject.com/KB/recipes/n3_notation#acrophobia>.
<http://www.codeproject.com/KB/recipes/n3_notation#Peter> <http://www.codeproject.com/KB/recipes/n3_notation#suffers> <http://www.codeproject.com/KB/recipes/n3_notation#insomnia>.
<http://www.codeproject.com/KB/recipes/n3_notation#Peter> <http://www.codeproject.com/KB/recipes/n3_notation#suffers> <http://www.codeproject.com/KB/recipes/n3_notation#xenophobia>.
<http://www.codeproject.com/KB/recipes/n3_notation#Peter> a <http://www.codeproject.com/KB/recipes/n3_notation#boy>.
<http://www.codeproject.com/KB/recipes/n3_notation#Peter> a <http://www.codeproject.com/KB/recipes/n3_notation#person>.
<http://www.dotnetrdf.org/> <http://example.org/createdBy> "Rob Vesse".

这种格式完全显示了所有uri,我怎样才能像第一种格式一样保存它?

请帮帮我

最佳答案

    Graph graph1 = new Graph();

    TripleStore store = new TripleStore();
    Notation3Parser n3parser = new Notation3Parser();

    n3parser.Load(graph1, AppPath + "\\n3\\ontology.n3");

    //Create some Nodes
    graph1.NamespaceMap.AddNamespace("my", UriFactory.Create("http://0.0.0.1/#"));
    IUriNode Person = graph1.CreateUriNode("my:firas");
    IUriNode rdfType = graph1.CreateUriNode("my:name");
    IBlankNode dse = graph1.CreateBlankNode("a");
    ILiteralNode robVesse = graph1.CreateLiteralNode("firas");

    Triple t = new Triple(Person, dse, robVesse);
    graph1.Assert(t);

    IUriNode Person1 = graph1.CreateUriNode("my:firas");
    //ILiteralNode LtrNode = graph1.CreateLiteralNode("a", UriFactory.Create(XmlSpecsHelper.XmlSchemaDataTypeString));
    IUriNode rdfType1 = graph1.CreateUriNode("my:a");
    IUriNode robVesse1 = graph1.CreateUriNode("my:person");
    IGraphLiteralNode dfa = graph1.CreateGraphLiteralNode(graph1);

    Triple t1 = new Triple(Person1, rdfType1, robVesse1);
    graph1.Assert(t1);
    IUriNode Person2 = graph1.CreateUriNode("my:firas");
    IUriNode rdfType2 = graph1.CreateUriNode("my:suffers");
    IUriNode robVesse2 = graph1.CreateUriNode("my:insomnia");
    Triple t2 = new Triple(Person2, rdfType2, robVesse2);
    graph1.Assert(t2);

    //SparqlResultSet resultSet = graph.ExecuteQuery(str2) as SparqlResultSet;

    store.Add(graph1);
    Notation3Writer n3w = new Notation3Writer();
    n3w.Save(graph1, AppPath + "\\n3\\ontology.n3");

关于c# - 我怎样才能像原始文件一样保存我的 n3 文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558148/

相关文章:

c# - 如何引发跨线程事件

c# - 主异常/碰撞检查

rdf - 隐式具体化的简单格式

c# - 加载巨大的 DBpedia 转储时出现内存不足异常

c# - 在 C# 中使用 dotnet rdf 从 N3 添加和删除查询

c# - 单选按钮上的模型绑定(bind)为该属性返回 null (ASP.NET Core)

c# - 在 C# 中生成一个均分为另一个的随机数

sparql - 使用 fuseki 减少查询 sparql 的字符串长度

uri - notation 3 URI 到 RDF/XML

c# - 对 dbpedia 端点执行 sparql 查询