我正在努力理解本体论基础知识.这是一个例子:
我的问题是了解什么是"2009大众CC"(作为汽车模型).如果你将产品模型作为本体中的一个子类 - 突然间你的本体变得臃肿,有数千个"汽车"的子类.那是多余的.同时我们不能说"2009 VW CC"是一个实例,至少它不是一个类的实质实例.
区分常规实例和材料(不同的物理对象)是否有意义?
另一方面,如果两者都是实例(具有不同性质),那么实例如何继承非类的属性/关系?
我正在使用基本的OWL,并且很容易表示一些简单的句子,例如"Songoku是讲师,他教数学".
例如:
<owl:Class rdf:ID="Lecturer"></owl:Class>
<owl:Class rdf:ID="Subject"></owl:Class>
<owl:Property rdf:ID="teach">
<rdfs:domain rdf:resource="#Lecturer"/>
<rdfs:range rdf:resource="#Subject"/>
</owl:Property>
<Subject rdf:ID="Maths"></Subject>
<Lecturer rdf:ID="Songoku">
<teach>
<Subject rdf:about="#Maths"></Subject>
</teach>
</Lecturer>
Run Code Online (Sandbox Code Playgroud)
但是当我试图表达这句话时我遇到了一个问题:Bob是学生,如果Bob有5只狗,那么他至少有一只猫..
你能告诉我一些建议吗?
设计服务开放时间的最务实的方法是什么,以便SPARQL查询能够查询在特定时间间隔/特定时间间隔内打开的事物?
这个问题的答案应该包含:
(*简单和性能的额外点)
在我的这个工作层面,我需要从MeSH本体中提取一个类同义词.我正在寻找SPARQL查询的正确语法:它们如何存储在MeSH中的同义词?我该如何提取它们?
我有一个关于SPARQL的问题.我有动物的本体论:
Animals (is a superclass with object property <hasColor>)
------ Mammals (subclass of Animals)
------------- Dog (subclass of Mammals)
---------------- dog1 (a instance with property <hasColor>="white")
---------------- dog2 (a instance with property <hasColor>="red" )
------ Bird (subclass of Animals)
Run Code Online (Sandbox Code Playgroud)
是否有可能找到SPARQL"所有动物,'白''或"所有动物实例"?倒退:我怎么知道,如果一个实例(dog1)属于动物?
注意:类层次结构的深度和广度是事先未知的.
此外,下面的查询将无法正常工作
SELECT ?x WHERE {?x rdfs:subClassOf :Animals . ?x :has?olor "white"}
Run Code Online (Sandbox Code Playgroud)
并且下一个查询(查找所有动物,即'白色')仅在已知类层次结构的深度时才起作用.(所以,如果层次结构是已知的,我可以让指定的步骤(从层次结构底部的顶部)要达到的目标:在这种情况下,2个步骤.
SELECT ?z WHERE {
?x rdfs:subClassOf :Animals .
?y rdfs:subClassOf ?x .
?z rdf:type ?y .
?z :hasColor "white"
}
Run Code Online (Sandbox Code Playgroud)
下一个例子也是如此 - "查找动物的所有实例"
SELECT ?z WHERE …Run Code Online (Sandbox Code Playgroud) 我正在使用Protégé构建本体,但是想用其他标准本体扩展它,例如frbr,prov和org.是否有标准的方法将我们的本体与这些标准本体集成在一起,还是我们可以将这些本体相互合并?我想用Protégé完成这些任务.
我是本体的新手。经过一番研究,我仍然不知道什么是本体在应用上的优势。我已经知道本体可以提供比数据库更有意义的查询接口,并且本体可以使用推理器来查找隐藏信息以获得更好的结果。但。在数据库中构建一个布尔表来表示每个实例的新概念,或者简单的 if-else 规则引擎。我们可以获得与本体相同的结果,但性能更好。那么,在应用中使用本体的最重要原因究竟是什么?
我需要将 OWL 本体转换为 OBO。
\n\n我已经尝试过这个工具https://github.com/ontodev/robot/但输出格式根本不正确,只是某些部分不正确。
\n\n还有 OBO-EDIT2 和 Proteg\xc3\xa9,但无法进行转换。
\n\n最后我尝试了这个 Perl 模块http://search.cpan.org/~easr/但它给出了这个错误
\n\n未定义的子例程 &XML::Parser 在 /usr/local/share/perl/5.14.2/OBO/Parser/OWLParser.pm 第 146 行调用。
\n\n尝试安装 XML::Parser 总是以错误结束。
\n\n谁能帮我转换本体吗?
\n从实际角度来看,我一直在努力理解这些技术何时有用,以及它们之间有何不同。专家可以检查一下我的理解吗?
图形数据库:当关系复杂、继承、以不同程度的置信度推断并且可能发生变化时,图形数据库比关系数据库更容易理解和管理。一些示例:用户不知道他们需要层次结构的深度;从社交媒体推断关系,对 ID 解析、主题解析和关系强度有不同程度的置信度;或者不知道他们要存储什么类型的呼叫中心数据;所有这些都可以存储在关系数据库中,但它们需要不断更新。它们对于某些任务也更具表现力。
本体:这些正式且标准化的知识表示用于打破数据孤岛。例如,假设一家 B2B 销售公司从多个不同的业务领域获得收入,其中包括一次性付款、订阅、IP 销售和咨询服务。收入数据存储在许多不同的数据库中,这些数据库具有很多特性。本体允许用户将“客户付款”定义为“创造或退还收入”的任何内容,以便主题专家可以在其数据库中适当地标记付款。本体可以与图数据库或关系数据库一起使用,但是对类继承的强调使得它们在图数据库中更容易实现,在图数据库中可以轻松地对类的分类进行建模。
知识图:知识图是一种图数据库,其中语言(含义、实体和节点分类法)由本体管理。因此,在我们的 B2B 示例中,“客户付款”边缘具有一次性付款、订阅等子类型,并将“客户”类连接到“业务线”类。
这基本上是正确的吗?
我已经2 ontologies使用owlready2库做了
list(ontology1.classes())
[old_dataset_ontology.weather,
old_dataset_ontology.season]
list(ontology1.individuals())
[old_dataset_ontology.rainy,
old_dataset_ontology.windy,
old_dataset_ontology.cold,
old_dataset_ontology.clouds]
list(ontology2.classes())
[new_dataset_ontology.weather,
new_dataset_ontology.season,
new_dataset_ontology.season1]
list(ontology2.individuals())
[new_dataset_ontology.rainy,
new_dataset_ontology.windy,
new_dataset_ontology.cold1]
Run Code Online (Sandbox Code Playgroud)
我想要merge他们,但我找不到办法olwready2。文档中没有任何内容。我只想要一个简单的字符串匹配并删除重复的类和 indiv
有任何想法吗?
ontology ×10
owl ×6
jena ×2
rdf ×2
semantics ×2
sparql ×2
database ×1
owlready ×1
perl ×1
protege4 ×1
python ×1
python-3.x ×1
semantic-web ×1
xml-parsing ×1