【问题标题】:How to define a property with same name on two different types in ROWLEX?如何在 ROWLEX 中的两种不同类型上定义具有相同名称的属性?
【发布时间】:2009-08-07 07:23:08
【问题描述】:

如果我有这两个具有两个不同属性但名称相同的类:

[RdfSerializable]
public class Type1
{
    [RdfProperty(true), Name = "title"]
    public string Title { get; set; }
}

[RdfSerializable]
public class Type2
{
    [RdfProperty(true), Name = "title"]
    public string Title { get; set; }
}

并尝试将它们序列化为 RDF 并使用http://www.w3.org/RDF/Validator/ 服务对其进行验证。一切都很好,他们是正确的。 但是在我尝试使用 OntologyExtractor.exe 工具从这些类生成 OWL 文件后,我收到了这条消息: “本体提取失败。http://test.org/1.0#title 已分配给多个类型。” 这是一个奇怪的消息,因为上层类是正确的,并且有一些 RDF 规范与具有相同命名属性的不同类有相同的情况。

【问题讨论】:

    标签: c# .net properties rdf rowlex


    【解决方案1】:

    我认为这是 ROWLEX 中的一个错误。您的案例是有效的,但我假设我在编写 OntologyExtractor 时没有为此做好准备。我会尽快发布修复。

    编辑:ROWLEX2.1 已发布,您可以从http://rowlex.nc3a.nato.int 下载。 2.1 版(除其他外)现在支持共享属性功能。问题中的确切代码仍然会导致相同的错误!为了克服这个问题,你应该改变你的代码的装饰如下:

    [RdfSerializable] 
    public class Type1 
    { 
        [RdfProperty(true, Name = "title", ExcludeFromOntology=true)] 
        public string Title { get; set; } 
    } 
    
    [RdfSerializable] 
    public class Type2 
    { 
        [RdfProperty(true, Name = "title", 
                   DomainAsType = new Type[]{typeof(Type1), typeof(Type2)})] 
        public string Title { get; set; } 
    } 
    

    使用 OntologyExtractor.exe,此代码将生成一个 OWL 属性,该属性具有一个匿名域类,即 Type1 和 Type2 的 UNION。
    虽然这在技术上是完全正确的解决方案,但在属性上设置域会限制它们未来可能的重用。作为一种解决方案,您可能希望用本地限制替换属性域。您可以通过以下方式实现:

    [RdfSerializable] 
    public class Type2 
    { 
        [RdfProperty(true, Name = "title", 
                   DomainAsType = new Type[]{typeof(Type1), typeof(Type2)},
                   UseLocalRestrictionInsteadOfDomain = true)] 
        public string Title { get; set; } 
    } 
    

    如果您未设置 UseLocalRestrictionInsteadOfDomain,ROWLEX 会根据当前上下文在域和本地限制之间进行选择。

    【讨论】:

    • 太棒了!谢谢!之后我会验证它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2014-12-13
    相关资源
    最近更新 更多