【问题标题】:OWL Assembly Generation Problem (OWLGrinder)OWL 程序集生成问题 (OWLGrinder)
【发布时间】:2009-05-29 21:07:50
【问题描述】:

我正在从我的 OWL 本体构建一个程序集,但是在解析本体时,它会在声明类型并给出一些值的“数据类型属性”处引发错误消息。我已经使用 Protege v3.4 编写了我的本体。

例如,引发错误的数据类型属性之一是“语言”,其类型为“字符串”,值如“英语和波斯语”。参考文献如下,由 protege 提供:

<rdf:RDF xml:base="http://www.owl-ontologies.com/Ontology1243411901.owl"
xmlns="http://www.owl-ontologies.com/Ontology1243411901.owl#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:swrl="http://www.w3.org/2003/11/swrl#" 
xmlns:swrlb="http://www.w3.org/2003/11/swrlb#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
xmlns:xsp="http://www.owl-ontologies.com/2005/08/07/xsp.owl#">

下面提到了“语言”属性:

<owl:DatatypeProperty rdf:ID="language">
        <rdfs:range>
            <owl:DataRange>
                <owl:oneOf rdf:parseType="Resource">
                    <rdf:rest rdf:parseType="Resource">
                        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
                        <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Farsi</rdf:first>
                    </rdf:rest>
                    <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">English</rdf:first>
                </owl:oneOf>
            </owl:DataRange>
        </rdfs:range>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <owl:Class rdf:about="#Teacher"/>
                    <owl:Class rdf:about="#ClassOfCourse"/>
                    <owl:Class rdf:about="#LearningResource"/>
                    <owl:Class rdf:about="#Discussion"/>
                    <owl:Class rdf:about="#Student"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
    </owl:DatatypeProperty>

我只是向 OWLGrinder 添加了一个本体。生成时出现此错误:

Assembly generation failed. 
OWL property 'http://www.owl-ontologies.com/Ontology1243411901.owl#language' has a range declaration that points to _:bnode10579059 but its definition is missing. 
Are you missing an ontology which declares this class?

每次按“生成”按钮时,“_:bnode”前面的数字都会改变。 通过从“语言”属性中删除值,会发生与下一个 DataType 属性相关的另一个错误。这意味着在 OWLGrinder 中定义的每个 DataType 属性(并为其指定了一些值)都会出错。

我想知道是否有人可以指导我处理这个错误。

【问题讨论】:

    标签: rdf owl ontology rowlex


    【解决方案1】:

    我不熟悉 OWLGrinder,但您可以尝试声明一个命名类,例如 ExpectedLanguages(给您的匿名节点一个 URI),然后将其用作您的 language 谓词的范围。一个简短的例子(Turtle 格式):

    :ExpectedLanguages
        a owl:DataRange ;
        owl:oneOf (
            "Farsi"^^xsd:string
            "English"^^xsd:string
        );
    .
    
    :languages
        rdfs:range :ExpectedLanguages ;
    .
    

    您对OWL enumerated datatype 的使用要求您的代码/解析器/推理器至少符合 OWL-DL。

    _:bnodeXXX(空白节点/匿名节点)每次都有新ID的原因是因为它是空白的。但是,为了在内存中的 RDF 图(模型)中识别它,需要在加载每个匿名节点时为其生成一个 ID,以便在分析模型时可以唯一地识别每个节点(匿名或命名)因此可以识别其传入和传出引用。

    【讨论】:

    • 非常感谢 Phil M 先生。我可以从您的回答中学到很多东西。该问题通过为每个数据类型范围创建一个类来解决。
    【解决方案2】:

    目前ROWLEX OwlGrinder 期望范围是文字或常规类。我建议创建一个“LanguageList”包装类,其中包含您的枚举,并将其分配为一个范围。我没有对此进行测试,但我确实希望它能够工作。

    【讨论】:

    • 非常感谢您的回答。该问题通过为每个数据类型范围创建一个类来解决。
    【解决方案3】:

    Intellidimension 提供了一个可以将 OWL-Lite、OWL-Full 或 OWL-DL 转换为 .NET 类的 SDK。你可能想看看那个。

    旁注
    我认为您在本体中混淆了域的语义。看来您是在说“语言可能只存在于教师、课程、学习资源、讨论、学生上”,而实际上您是在说“如果语言用于描述一个实例,则该实例可以被推断为教师联盟、ClassOfCourse、LearningResource、讨论和学生。”。这是对 OWL 语义的常见误解,因为感觉域应该限制属性的使用,而实际上这不是 OWL 的功能(模式/验证)。 OWL 仅用于描述应由用法推断出的内容,并没有规定用法。

    Domain semantics described in OWL guide.

    通过在语言属性的域中使用 UnionOf,您是在说“使用语言属性描述的任何内容都是教师、ClassOfCourse、LearningResource、讨论或学生”。我认为这通常没有意义。

    UnionOf semantic described in OWL guide.

    Range 的相似之处在于,如果您将属性的范围定义为特定类型,则可以推断该属性引用的所有文字/资源都是使用范围声明定义的类型。

    Range described in OWL guide.

    【讨论】:

      【解决方案4】:

      我已经在http://www.mygrid.org.uk/OWL/Validator 中复制/粘贴了您的本体:它说这个本体(至少)不是 OWL-lite 本体。您的 Protege 配置可能有问题?

      【讨论】:

      • 您好皮埃尔,非常感谢您的回答。我将整个本体粘贴到该验证器站点中,该站点将其验证为 OWL-DL。 OWLGrinder 是否仅适用于 OWL-Lite?有没有其他工具可以从本体进行组装?
      猜你喜欢
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多