在本体中,如何将属性的值定义为日期时间

 兆华2502940257 发布于 2023-01-30 09:47

在编写本体并且你想要创建一个与时间/日期相关的类和属性时,我假设你将在结构上有这样的东西(伪代码):

class:Project
  label: Project

property:duedate
  label: The expected completion time and date of project
  domain: Project
  range: datetime (?)

我已经用Google搜索并发现了Owl-Time本体,但用例让我感到困惑,因为看起来我应该定义相当多的东西.我在这里走在正确的轨道上吗?

1 个回答
  • 你还没有提到你是如何构建你的本体论的.如果您是手工编写OWL(例如,使用函数语法),那么您可以单向执行; 如果您正在编写RDF,那么您将另外执行(您将编写OWL公理的RDF编码).查看这些操作的最简单方法可能是使用Protégé或类似的图形编辑器定义本体,然后查看生成的代码.我假设你使用了术语datetime,你会看到一个数据属性,其值应该是数据类型的文字xsd:dateTime.

    在Protégé

    在Protégé你会做这样的事情:

    在此输入图像描述

    在OWL功能语法中

    数据属性范围公理的语法在9.3.5数据属性范围中给出,来自OWL 2 Web本体语言结构规范和功能样式语法(第二版).当我们在函数语法中保存本体时,我们得到:

    Prefix(xsd:=<http://www.w3.org/2001/XMLSchema#>)
    Prefix(owl:=<http://www.w3.org/2002/07/owl#>)
    Prefix(xml:=<http://www.w3.org/XML/1998/namespace>)
    Prefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)
    Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)
    
    
    Ontology(<http://stackoverflow.com/q/21486301/1281433/projects>
    
    Declaration(Class(<http://stackoverflow.com/q/21486301/1281433/projects#Project>))
    Declaration(DataProperty(<http://stackoverflow.com/q/21486301/1281433/projects#dueDate>))
    DataPropertyDomain(<http://stackoverflow.com/q/21486301/1281433/projects#dueDate> <http://stackoverflow.com/q/21486301/1281433/projects#Project>)
    DataPropertyRange(<http://stackoverflow.com/q/21486301/1281433/projects#dueDate> xsd:dateTime)
    )
    

    重要的公理是

    DataPropertyRange(<http://stackoverflow.com/q/21486301/1281433/projects#dueDate> xsd:dateTime)
    

    在RDF中

    OWL可以在RDF中序列化,RDF可以通过多种方式进行序列化.这是本体在RDF的Turtle序列化和RDF/XML序列化中的样子:

    @prefix :      <http://stackoverflow.com/q/21486301/1281433/projects#> .
    @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
    @prefix owl:   <http://www.w3.org/2002/07/owl#> .
    @prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
    @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    
    <http://stackoverflow.com/q/21486301/1281433/projects>
            a       owl:Ontology .
    
    :Project  a     owl:Class .
    
    :dueDate  a          owl:DatatypeProperty ;
            rdfs:domain  :Project ;
            rdfs:range   xsd:dateTime .
    

    当然,重要的三重奏是

    :dueDate rdfs:range xsd:dateTime
    
    <rdf:RDF
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns="http://stackoverflow.com/q/21486301/1281433/projects#"
        xmlns:owl="http://www.w3.org/2002/07/owl#"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
        xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
      <owl:Ontology rdf:about="http://stackoverflow.com/q/21486301/1281433/projects"/>
      <owl:Class rdf:about="http://stackoverflow.com/q/21486301/1281433/projects#Project"/>
      <owl:DatatypeProperty rdf:about="http://stackoverflow.com/q/21486301/1281433/projects#dueDate">
        <rdfs:domain rdf:resource="http://stackoverflow.com/q/21486301/1281433/projects#Project"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
      </owl:DatatypeProperty>
    </rdf:RDF>
    

    它仍然是重要的三元组,但在这种格式中,它写成:

      <owl:DatatypeProperty rdf:about="http://stackoverflow.com/q/21486301/1281433/projects#dueDate">
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
      </owl:DatatypeProperty>
    

    2023-01-30 09:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有