java - 对本体为 "data-driven"s.t 感到困惑更新本体

标签 java jena ontology owl triples

我在这里读到*本体(RDF本质上)是数据驱动的,因为人们可以使用一个小的本体并将其用于应用程序,然后......将其他概念集成到同一本体中以使其更强大稳健。

我关心的是某个三元组 future 如何变得更加强大?例如。

School : Class
Properties:
has Name : String
has Area : float
has Type : String // can be** , choices are Specialist, Faith, Free etc.

此时,实例化 School 将为我们提供...

School X : School
has Name = School X : String
has Area = 20000.00 : float
has Type = Specialist : String                    <<--------------------------

我感兴趣的三元组是

SchoolX  hasType Specialist^^string

如果后来我发现 Specialist 这个词下面有几个属性,所以我决定创建一个 Specialist : Class 该怎么办

Specialist : Class                                <<--------------------------
has Specialization : String // can be**
followsNationalCurriculum : boolean
...and so forth

说,

MusicSpc : Specialist
has Specialization = Music : String
followsNationalCurriculum = true
etc.

我的问题是。

  1. 对于那些使用 hasType=Specialist^^string 的人,如何实现旧本体中的字符串文字“Specialist”必须连接到新本体中的 Specialist(Cls) 实例?你是在耶拿还是 OWL/RDF 做的?
  2. 关于 (1),我知道在 Java 中重载方法有时会很有用。重载对本体有好处吗?英石。 hasType:字符串,hasType:专家(Cls)?我是否在 OWL/RDF 中声明 URI=namespace#hasType 既是数据类型又是对象属性?

我希望有人能在这方面帮助我。

引用文献:

最佳答案

关于您的第一个问题,有多种方法可以更新您的数据,例如,您可以使用 SPARQL 1.1 更新操作来更新您的数据,在这种特定情况下:

DELETE { ?x :hasType "Specialist"@en }
INSERT { ?x :hasType :Specialist } 
WHERE { ?x :hasType "Specialist"@en } 

至于你的第二个问题:你可以在 RDF(S) 中“重载”这个意义上的属性:任何属性都可以将字符串和单独的资源作为值。这是否明智是另一回事,因为有效查询和处理数据将变得更加困难。你最好不要重载它 - 也是因为在 OWL(至少是 OWL DL)中,你不能这样做:属性可以是 DatatypeProperty 或 ObjectProperty,但不能同时是两者。

一般来说:如果您不确定某个属性是否应该具有字符串值或更复杂的值,请从一开始就选择一个复杂的值。这样你的本体就被设计成可以在未来扩展,你就不必太担心更新的麻烦。在您的示例中,您已经知道为 :hasType 设置的值是一组固定的类型,即事物的类。不要使用字符串值进行此类构造,而是为这些内容引入实际的类

关于java - 对本体为 "data-driven"s.t 感到困惑更新本体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12941765/

相关文章:

Java获取不为null的对象

java - 在android中单击按钮加载新页面?

java - Servlet JApplet : HttpSession

java - 无法解析为 jodatime

rdf - 为 2 个相关表创建 RDF 并对其运行 SPARQL 查询

java - 不能用耶拿写大猫头鹰文件

java - 耶拿 NoReaderForLangException : owl

java - OWLAPI : HermiT reasoner thows "UnsupportedDatatypeException" for data type from imported Ontology

rdf - 用一次观察表示两个属性/特征

tags - 使用 RDFS/OWL 与使用标签的标记/标记语言有什么区别?