标签: description-logic

如何在JENA中添加合格的基数

如何在耶拿添加合格的基数限制?我不能使用,createCardinalityQRestriction因为它OntModelSpec是OWL的第一个版本,而不是OWL2.在ModelFactory的createOntologyModel中,有没有办法创建OWL2本体?我需要一个类表达式

JeVysledkom 正好 1 Kolik_Fazovy

我试过使用这段代码:

OntModel ontModel = ModelFactory.createOntologyModel();
OntClass ret = ontModel.createCardinalityQRestriction(null, ontProperty, cardinality,    ontClass2 );
ontClass.addSuperClass(ret);
Run Code Online (Sandbox Code Playgroud)

但我得到这个例外:

com.hp.hpl.jena.ontology.ProfileException:尝试使用当前语言配置文件不支持的语言构造CARDINALITY_Q:OWL Full

java rdf owl jena description-logic

4
推荐指数
1
解决办法
1328
查看次数

具有确切基数的财产是否具有功能性?

在OWL-DL本体中,考虑具有域D和范围R的属性p,其中Dp的限制具有恰好为1的基数:

d SubClassOf p 恰好 1个事

  • (D⊑= 1 p.Thing)

那么我们可以推断p是一个函数属性,因为D类型中的每个d都只有p的一个值吗?如果这是正确的,推理人可以推断出这种知识吗?

semantic-web owl manchester-syntax protege description-logic

4
推荐指数
1
解决办法
298
查看次数

Sparql查询Subclass或EquivalentTo

我想查询Nicotine(产品)的所有子类.
结果必须是(鼻形式尼古丁,Orophangengeal来自ni ..(4项)..见图)我尝试通过rdfs查询:subClassOf +和owl:equivalentClass +但是没有工作试试这个例子 这里的代码相同.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>           
PREFIX owl: <http://www.w3.org/2002/07/owl#>        
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>         
SELECT * WHERE 
{       
  ?s owl:equivalentClass+ ?o . # and try   ?s rdfs:subClassOf ?o    
  filter(?s=<http://snomed.info/id/323283001>)       
}
Run Code Online (Sandbox Code Playgroud)

来自protege的这张图片 谢谢.

第一个查询很难解释和做,因为这么大的文件有些IRI不是subClass而不是等价的类,我改变了从这里查询的方式

<owl:Class rdf:about="http://snomed.info/id/323283001">
    <rdfs:label xml:lang="en">Nicotine (product)</rdfs:label>
    <rdfs:subClassOf>
        <owl:Class>
            <owl:intersectionOf rdf:parseType="Collection">
                <rdf:Description rdf:about="http://snomed.info/id/420383004"/>
                <rdf:Description rdf:about="http://snomed.info/id/425288007"/>
                <owl:Restriction>
                    <owl:onProperty rdf:resource="http://snomed.info/id/127489000"/>
                    <owl:someValuesFrom rdf:resource="http://snomed.info/id/68540007"/>
                </owl:Restriction>
            </owl:intersectionOf>
        </owl:Class>
    </rdfs:subClassOf>
</owl:Class>
Run Code Online (Sandbox Code Playgroud)

我想查询所有id(id/420383004,id/425288007,id/127489000和id/68540007)

来自owl:Class rdf:about ="http://snomed.info/id/323283001"请告诉我一些想法.谢谢

rdf owl sparql protege description-logic

3
推荐指数
1
解决办法
4736
查看次数

OWL-DL:财产限制和/或域名范围?

我对使用域,范围和限制来定义本体的正确方法存在疑问.如果我想表示"学生必须只有一个身份证明",我认为我可以做以下其中一项:

  1. 定义属性的域和范围(例如,:hasId rdfs:domain :Student; rdfs:range :Identification)并使属性起作用.

  2. 定义属性并在学生班级中创建限制:"hasId恰好1个标识".

在语义方面,这些意味着同样的事情吗?如果是这样,在惯例或最佳做法方面是否有首选方案?最后,这同样适用于数据类型属性吗?我可以简单地定义域/范围和/或我应该在类中创建限制以将其与属性链接吗?

rdf semantic-web owl ontology description-logic

3
推荐指数
1
解决办法
1679
查看次数

是否可以在 OWL 2 中的类级别进行属性断言?

我有一个 OWL 2 本体,其中包含属于某个类的多个命名个体,这些个体需要具有相同的对象属性和相同的值。

我想在“类上”进行此属性断言,以便推理器可以推断出其所有成员所拥有的属性,因此不需要为每个成员进行显式断言。(获得类似于基于类的面向对象的属性继承)

一个简单的例子是包含属于该类的milkBottle1个体的milkBottle2本体。它们都应该具有value 的属性,但显然这是类的所有成员共享的东西,并且只应该显式断言一次。milkBottle3MilkcontainsNutrientproteinMilk

我只在这里发现了同样的问题,但唯一的答案提出了一个不适当的解决方案:使该类成为属性限制类的子类。这导致推理器推断该类等同于 Nothing 类(因为不存在具有此类属性的命名个体),从而由于向其分配个体而造成不一致。

我知道这是一个简单的任务,使用 SWRL 规则,例如

牛奶(?a) → 含有营养素(?a, 蛋白质)

但如果可能的话我想避免它们。

如果没有 OWL 2 中的解决方法,这可能吗?如果可以的话,该怎么办呢?

inheritance semantic-web owl description-logic

3
推荐指数
1
解决办法
3600
查看次数

"someValuesFrom"和"allValuesFrom"之间有什么区别?

在描述逻辑中,"someValuesFrom"和"allValuesFrom"之间有什么区别?换句话说,(有限存在量化)和(价值限制)之间的差异.

例如,考虑一下:

Δ= {a,b,c,d,e}
ext(B)= {<c,d>}
ext(R)= {<a,b>,<a,c>,<d,c>,< C,E>}

那么以下是什么区别?

ext(∃R.B)=
ext(∀R.B)=

有没有办法简化somevaluefrom和allvalues的概念?

math logic owl description-logic

2
推荐指数
1
解决办法
2120
查看次数

如何将类的每个实例与另一个类的每个实例相关联?

一般问题

我正在使用Protégé4.3创建一个简单的本体,并尝试创建一个模型,以使C类的每个实例对于给定的属性p都具有特定的值v,它是V类的实例。我可以使用公理来得到这个推论

C subClassOf(p v)

但我想我希望能够按照

C subClassOf(p 一些 V)

因为我实际上希望C的每个实例都与V的每个实例相关。

一个具体的例子

我的示例是汽车和动作-我想为汽车创建一组动作。当我创建汽车的新实例时,我希望每个实例都有一套动作。如果我添加了新的动作实例,我希望所有汽车实例都能反映出它们所有相关的动作。

为了进一步说明,我定义了Auto类和两个子类:CarTruck。我还定义了一个Action类和一个子类TruckAction。我定义了具有域自动和范围动作hasAction属性,以关联自动和动作。我进一步创建了几个不同类型的人:

  • 汽车
    • 卡车{F150}
    • 车{ChevyMalibu}
  • 动作{加速}
    • TruckAction {LoadCargo}

当我将Car 设为(hasAction值Accelerate)的子类时,我可以看到ChevyMalibu具有推断的对象属性hasAction Accelerate,但这似乎类似于对对象属性断言进行硬编码。我想为ChevyMalibu推断所有的汽车动作,以及为F150推断所有的 TruckActions 。我不太确定为什么做类似使Car成为(hasAction和Action的子类)之类的事情不会使我到那里。

我认为对 …

semantic-web owl ontology protege description-logic

2
推荐指数
1
解决办法
1146
查看次数

SWRL 规则不会推断新的对象和数据属性断言

我创建了这个本体,其中包含两个类:血糖服务Blood-Sugar有两个数据属性:范围为 xsd:int 的hasValu和范围为 xsd:string 的hasStatut 。对象属性triggerService“血糖”为域,以“服务”为范围。

\n\n

我想用这个规则推断数据属性断言:

\n\n
\n

Blood_Sugar(?x) \xe2\x88\xa7 hasValue(?x, ?y) \xe2\x88\xa7 swrlb:greaterThan(?y, 126) \xe2\x88\xa7 swrlb:lessThan(?y, 500) \ xe2\x86\x92 hasStatut(?x, "高")

\n
\n\n

然后我想用这个规则推断一个新的对象属性:

\n\n
\n

Blood_Sugar(?x) \xe2\x88\xa7 hasStatut(?x, "高") \xe2\x88\xa7 Service(?s) \xe2\x86\x92 triggerService(?x, ?s)

\n
\n\n

然而,当我创建规则应适用的个体时,推理机并没有给出我想要的结果。这是演示这种行为的本体:

\n\n
<?xml version="1.0"?>\n\n\n<!DOCTYPE rdf:RDF [\n    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >\n    <!ENTITY swrl "http://www.w3.org/2003/11/swrl#" >\n    <!ENTITY swrlb "http://www.w3.org/2003/11/swrlb#" >\n    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >\n    <!ENTITY rdfs …
Run Code Online (Sandbox Code Playgroud)

rdf owl protege description-logic swrl

2
推荐指数
1
解决办法
4939
查看次数

强制 OWL 类采用封闭世界假设

我有一个具有以下等价的 OWL 类(采用曼彻斯特表示法):

A and not (hasB some (B and (hasC some C) and (hasD some D) and (hasList some (OWLList and (hasContents some (OWLList and (hasContents some (E and (hasValue some integer[< 200]) and (hasType value "xsd:integer"^^string))) and (hasNext some EmptyList))) and (hasNext some EmptyList)))))

我希望对此类强制执行封闭世界推理,以便任何不满足语句后剩余条件的个人都not将成为此类的成员。

为此,我尝试使hasC,hasDhasList属性具有功能性,以便 OWL 知道不可能有这些属性的其他实例附加到此类。

不幸的是,该hasB属性可能会多次出现,因此无法对其进行限制。为了尝试“关闭”班级的这一部分,我oneOf在班级中添加了一条声明B,指定班级可以接受的所有可能的个人B

在我看来,函数属性和oneOf语句的这种组合应该成功“关闭”该类。谁能告诉我我做错了什么?

我正在使用http://owl-workshop.man.ac.uk/acceptedLong/submission_12.pdf提出的 OWLList 类和相关属性。

非常感谢。

semantic-web owl description-logic

2
推荐指数
1
解决办法
1606
查看次数

OWL 2 QL 与 RDFS

OWL 2 QL 的 W3C 解释中提到:

特别是,此配置文件(即 OWL 2 QL)包含 RDFS 和 OWL 2 DL 的交集。

这句话让我很困惑,我想知道是否有人可以澄清它。这是否意味着 OWL 2 QL 是 RDFS 的子集?或者这是否意味着它是 RDFS 的更受限制的版本(因此有更多的公理来表达这些限制)。

假设我有一个知识库,其中仅使用以下公理:rdfs:domain、rdfs:range、rdfs:subclassOF、rdf:type、owl:ObjectProperty 和 owl:DatatypeProperty。关于本知识库的语言我能说些什么?我可以说它是用 RDFS、OWL 2 QL 或两者来表达的吗?

是这样的情况吗,如果我看到一个资源既是某个东西的实例(rdf:type)又是一个类,我会说它是 RDFS,如果没有既是实例又是类的资源,我会说它是 RDFS OWL 2 QL 里也有吗?

owl ontology rdfs description-logic

2
推荐指数
1
解决办法
275
查看次数

在OWL 2中,为什么关键公理的语义特定于命名个体?

在OWL 2的规范中,关键公理的部分说明:

关键公理的语义是特定的,因为这些公理仅适用于通过名称在本体中明确引入的个体,而不适用于未命名的个体(即存在通过存在量化暗示存在的个体).这使得关键公理等同于DL安全规则的变体.因此,关键公理通常不会影响基于类的推理,例如包含层次结构的计算,但它们将在回答关于个体的查询中起作用.

然后它继续显示一组公理的例子,这些公理显然需要得出结论,但由于该规则,规范不承认.

这个决定背后的原因是什么?

semantic-web owl description-logic

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