标签: ontology

如何构建一个地方的开放时间?可能还有一个本体论吗?

有没有人知道任何指定场所开放时间的本体论?例如,我有一个博物馆,有两个季节.淡季(指定赛季开始和结束),平日开放时间为10.00 - 18.00,周六开放时间为10-16(星期日关闭),旺季开放时间为平日10-20,周末开放时间为10-18.

如果没有本体论,可能有人有经验,如何最好地构建这样的信息?

我在RDF中描述信息.但是欢迎任何评论(即使您拥有保存给定数据的关系数据库).

谢谢

ontology

6
推荐指数
1
解决办法
1046
查看次数

在Android上使用Protege owl本体

本学期我有一个实用的研讨会,我想在Android应用程序上使用本体.我选择Protege owl本体作为本体API,这个工具在普通的Java项目中工作.但是当我尝试导入这个用于Android项目中的owl本体API的jar文件时.它会失败,我在互联网上找不到任何解决方案.你能帮助我吗?

android owl ontology protege

6
推荐指数
1
解决办法
2795
查看次数

如何从MeSH本体中提取同义词?

在我的这个工作层面,我需要从MeSH本体中提取一个类同义词.我正在寻找SPARQL查询的正确语法:它们如何存储在MeSH中的同义词?我该如何提取它们?

owl ontology sparql jena mesh-ontology

6
推荐指数
1
解决办法
1997
查看次数

测量RDF/OWL图中类之间的距离

也许有人可以给我一个暗示.是否有可能测量属于​​同一本体的2个概念/类之间的距离?

例如,假设我有天文学课程和望远镜课程的本体论.两者之间存在联系,但它不是直接链接.天文学有一个名为Science的父类,而Telescope有一个名为Optical Instrument的父类,它属于名为Instrumentation的父类,它与一个名为Empirical Science的类有关,该类最终属于一个名为Science的类.

所以Telescope和Astronomy之间存在间接联系,我想找出从另一个类开始到达一个类所需的步骤数.

是否有一个简单的SPARQL查询可以解决这个问题?或者有更好的方法来完成这项工作?或者不可能使用语义Web范例找到它?

任何提示都将非常感激.

rdf semantic-web ontology graph sparql

6
推荐指数
2
解决办法
1081
查看次数

耶拿:如何推断数据/性能问题

我想使用Jena的推理功能,但是当我使用InfModel时,我遇到了一些性能问题.

以下是我的本体的简要概述:

属性:

hasX            (Ranges(intersection): X, inverse properties: isXOf)
|-- hasSpecialX (Ranges(intersection): X, inverse properties: isSpecialXOf)

isXOf           (Domains(intersection): X, inverse properties: hasX)
|--isSpecialXOf (Domains(intersection): X, inverse properties: hasSpecialX)
Run Code Online (Sandbox Code Playgroud)

此外还有一个"对象"类:

Object hasSpecialX some X
Run Code Online (Sandbox Code Playgroud)

显式存储的是以下数据:

SomeObject a Object 
SomeX a X
SomeObject hasSpecialX SomeX  
Run Code Online (Sandbox Code Playgroud)

使用以下查询,我想确定一个实例属于哪个类.根据所做的假设,只应返回'SomeObject'.

SELECT ?x WHERE { ?x :hasX :SomeX . } 
Run Code Online (Sandbox Code Playgroud)

但是,查询ds.getDefaultModel()不起作用,因为数据未显式存储.infModel另一方面,当我使用时,查询永远不会完成.最长的我在流产前等了25分钟.(三元店的大小约为180 MB)

这是我的代码:

OntModel ont = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null); 
ont.read("file:..." , "RDF/XML"); 

Reasoner reasoner = ReasonerRegistry.getOWLMicroReasoner(); 
reasoner = reasoner.bindSchema(ont); 

Dataset dataset = TDBFactory.createDataset(...); 
Model …
Run Code Online (Sandbox Code Playgroud)

inference ontology sparql jena protege

6
推荐指数
1
解决办法
1868
查看次数

在neo4j数据库中重复本体的好框架?

我想为我的Web应用程序构建一个本体,我想用Neo4j来表示本体(因为我还是使用了Neo4j).

现在,我似乎必须从头开始编写它,包括整个本体实现,验证,推理,GUI编辑器.绝对是太多的工作.

是否有一个框架或库可以让我在neo4j上管理我的本体而无需从头开始实现它?如果没有,最合理的选择是什么?(我在Node.js上使用Neo4j)

ontology neo4j graph-databases

6
推荐指数
1
解决办法
1654
查看次数

用DL语法编写本体?

我刚刚发现了OWL和Pr​​otege.通过阅读这个参考页面(我在下面引用),我想知道是否可以使用抽象的OWL语法,而是用DL语法编写.我的背景是逻辑上的,所以听起来它会更有趣,即使我以后必须翻译本体(虽然我确信必须有应用程序才能做到这一点 - 此外,不要让reasoners使用DL吗?).

如果可能,我应该在Protege(或您建议的其他软件)中使用哪些设置配置才能执行此操作?我怀疑这是不可能的,但我想确定,因为除了特殊符号的尴尬之外我没有其他正当理由.

编辑:如果不可能,DL语言究竟是如何使用的?

OWL DL是描述逻辑SHOIN,支持数据值,数据类型和数据类型属性,即SHOIN(D),但由于OWL基于RDF(S),因此术语略有不同....对于OWL本体或知识库的描述,可以使用DL语法.有一个类似LISP的"抽象"语法定义,更容易用ASCII字符集编写.

猫头鹰

这是相同数据的两种语法样式的一个非常简短的工作示例.

logic owl ontology protege description-logic

6
推荐指数
1
解决办法
1309
查看次数

如何推断两个人之间的isBrotherOf属性

如果他们有同一个父亲,我需要推断一个人是另一个人的兄弟.

所以,如果我有这个:

巴特有父亲.

丽莎有父亲.

因为BartLisa父亲一样,我想推断:

丽莎有兄弟.

有没有任何方法可以使用任何属性特征?

rdf owl ontology protege

6
推荐指数
1
解决办法
1789
查看次数

本体,OWL,Sparql:建模"某些东西不存在"和性能考虑因素

我们想模拟"某些东西不在那里",而不是缺少信息,例如"患者未接受化疗"或"患者没有呼吸困难"的明确陈述与缺少患者是否有患者的信息不同呼吸困难.

我们考虑了几种方法,例如

  • 使用否定类:"No_Dyspnea".但这似乎在语义上存在问题,因为那个类会是什么类型的?它不能成为"呼吸困难"类的后代.
  • 使用"not there"对象属性,例如"denies"或"does_not_have",然后使用Dyspnea根类的个体作为该三元组的对象.
  • 使用空白节点描述个人属于没有呼吸困难的事物组.例如:

    dat:PatientW2 a [ rdf:type owl:Class;
                  owl:complementOf [
                    rdf:type owl:Restriction ;
                        owl:onProperty roo:has_finding;
                        owl:someValuesFrom nci:Dyspnea;
                  ]
                ] .
    
    Run Code Online (Sandbox Code Playgroud)

我们觉得第三种选择是表达这一点的最"本体论正确"的方式.但是,在使用它时,我们在简单的场景中遇到了严重的性能问题.

我们将Sesame与OWLIM-Lite商店一起使用,并将NCI词库(280MB,大约80,000个概念)和另一个非常小的本体导入商店,并添加了两个人,一个具有该补充/限制类.

以下查询永远执行,我在15分钟后终止它:

select *
where {
  ?s a [ rdf:type owl:Class;
                      owl:complementOf [
                        rdf:type owl:Restriction ;
                        owl:onProperty roo:has_finding;
                        owl:someValuesFrom nci:Dyspnea;
                  ]
                ] .
} Limit 100
Run Code Online (Sandbox Code Playgroud)

有人知道为什么吗?我会假设这种方法会创建大量空白节点,并且查询引擎必须通过整个NCI词库并将所有空白节点与此进行比较?

如果我将此三元组放在单独的图形中并且仅查询该图形,则查询会立即返回结果.

总结一下.这两个基本问题是:

  • 第三种方法真的是最好的建模"有些东西不存在"
  • 这会影响查询性能吗?

编辑1

我们讨论了提议的选项.它实际上帮助我们澄清了我们真正想要实现的目标:

  • 我们希望能够在特定时间点陈述"患者有呼吸困难"或"患者没有呼吸困难".

  • 在将来,可能/将会有关于该患者的更多信息,例如他/她现在患有呼吸困难.

  • 我们希望能够编写Sparql查询,询问"所有患有呼吸困难的患者"和"所有没有呼吸困难的患者".

  • 我们希望尽可能简单直观地保持Sparql.例如,只使用一个属性"has_finding",而不是必须知道两个属性(一个用于"has_exclusion").或者必须知道一些复杂的空白节点构造.

我们玩弄了各种选择:

  • 否定财产断言:这听起来像是这个问题的最佳解决方案,因为我们声称一个人与该财产上的另一个人无关.问题是我们必须为了拥有某些东西而创造一个呼吸困难的个体owl:targetIndividual.而且我们找不到一种方法来轻易地查询负面断言,然后通过整个链owl:sourceIndividualowl:targetIndividual链.这使得Sparql非常冗长,并且给编写查询的人带来了负担.
  • 补空的空白节点:我们会说这个我们不想陈述的东西.这将说明"患者1永远不会发现呼吸困难".虽然我们想说"患者1现在没有发现呼吸困难(或在第X天)".所以我们不应该使用这种方法.

  • 使用排除/包含类型(选项1和2):仔细观察Jeen的建议后,我们认为使用一般:Exclusion:Inclusion类以及仅一个属性has_finding并给予呼吸困难个体包含/排除类型是最容易理解,查询和提供足够的推理能力.例: …

performance modeling sesame ontology sparql

6
推荐指数
1
解决办法
400
查看次数

从wordnet中选择适当的单词意义

我正在使用Wordnet查找本体概念的同义词.我怎样才能为我的本体论概念选择合适的意义.例如,有一个ontlogy概念"会议"它在wordnet中具有以下同义词.名词会议有3种感官(前3个来自标记文本)

  1. (12)会议 - (预先安排的会议,用于咨询或交换信息或讨论(尤指具有正式议程的会议))
  2. (2)联赛,会议 - (为其成员组织比赛的运动队协会)
  3. (2)会议,小组讨论 - (具有商定(严肃)主题的参与者之间的讨论)现在第1和第3个同义词对我的本体概念具有适当的意义.我怎样才能从wordnet中选择这两个?

nlp ontology wordnet word-sense-disambiguation

6
推荐指数
1
解决办法
1787
查看次数