Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OWLAPI:如何将域分配给OWLObjectProperty上的范围_Java_Netbeans_Owl Api - Fatal编程技术网

Java OWLAPI:如何将域分配给OWLObjectProperty上的范围

Java OWLAPI:如何将域分配给OWLObjectProperty上的范围,java,netbeans,owl-api,Java,Netbeans,Owl Api,事实上,我想创建一个基于概念列表(字符串)和概念之间关系(映射)的本体。我有两种类型的关系“kind of”和“sub Topic of”。所以我尝试通过owl api创建这个本体。为了在两个owl类之间创建关系,我使用了OWLObjectPreprityDomain和OWLObjectProprerTerrange,并通过OWLObjectProperty指定了一个关系。 我的问题是,当我创建一个具有多个域和多个范围的关系时,我没有找到将每个域分配给每个范围的方式。 我想找到一个解决办法。有人

事实上,我想创建一个基于概念列表(字符串)和概念之间关系(映射)的本体。我有两种类型的关系“kind of”和“sub Topic of”。所以我尝试通过owl api创建这个本体。为了在两个owl类之间创建关系,我使用了OWLObjectPreprityDomain和OWLObjectProprerTerrange,并通过OWLObjectProperty指定了一个关系。 我的问题是,当我创建一个具有多个域和多个范围的关系时,我没有找到将每个域分配给每个范围的方式。 我想找到一个解决办法。有人能给我一个主意吗

例如,我有这样一个映射:
Map relation=newhashmap;
,它包含两个概念以及彼此之间的关系。
LinkedList listRelation=new LikedList;
此列表包含概念之间的关系列表。
关系(“概念1”)=“认证”
realtion(“关系”)=“种类”
关系(“概念2”)=“验证”
listRelation.添加(关系);
relation=newhashmap;
关系(“概念1”)=“加密”
realtion(“关系”)=“种类”
关系(“概念2”)=“密码术”
listRelation.添加(关系);
我创建了另一个包含概念和他的实例的地图,如:
Map inst;
inst(“概念”)=“身份验证”
inst(“实例”)=“topNet”

我如何在OWL中创建它。概念是OWLClass或OWLNamedIndividual。如果它们是OWLNamedIndividual,那么实例是什么。此外,如果概念是OWLClass,如何声明它们之间的关系?

从您的示例中,我得到的印象是,
身份验证和
验证
不是类而是个体,并且您拥有的是断言,而不是域和范围声明

但是,声明多个域相当于声明列出的所有类的交集并将其指定为域;对于范围也是如此。对于特定范围没有首选域

您可以做的是,例如,编写一个身份验证的C类子类和
所有类型验证的子类,在任何情况下,它都将为
类型的
类=概念断言域和范围等效,
个体=实例(对于一个类,实例化一个类以获得个体)

我将继续假设你考虑这些类/概念。

如果你只是想说加密是一种密码学,那么你只需要声明Ecryption子类,而不需要对象属性

如果你想使用其他类型的关系,说“HasRelationTo”,你会写下公理,比如

加密和与某些/仅加密相关(曼彻斯特语法)

正如伊格纳齐奥所说

域类表达式和 OWL中的范围类表达式

属性(=关系=函数)的范围和域是泛型的,用于防止错误。这意味着您无法指定

Domain1-propA-Range1(但不是,比如Domain2-propA-Range1)

域2-propA-Range2

对象属性声明只允许像{Domain1 U Domain2}-propA-{Range1 U Range2}这样的声明。如果确实需要执行上述操作,则必须使用两个不同的对象属性propA和propB。通常情况下不是这样,将多个域和范围放在一起就足够了

下面是建模的OWL文件

“身份验证”是一种“验证”

“加密”是一种“加密”

另外,你可能想看看protege pizza教程,更好地了解猫头鹰。如果我记得清楚的话,只需要20分钟

<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >

]>



您能解释一下“每个域到每个范围”的含义吗?域类表达式和范围类表达式之间没有特殊的关系,在OWL中,我将在下面的示例中介绍:“身份验证”概念是一种“验证”概念,“加密”是一种“加密”概念“.在本例中,我有两个域身份验证和加密”以及两个域验证和加密。因此,OWLObjectProperty:”类"有两个域和两个范围,但是当我检查.owl文件时,我不知道哪个范围是哪个域的范围。从您的示例中,我得到的印象是,
Authentication
Validation
不是类而是个体,您拥有的是断言,而不是域和范围声明。但是,声明多个omains相当于声明列出的所有类的交集,并将其指定为域;范围也是如此。对于特定的范围,没有首选域。您可以做的是,例如,编写一个类,它是域的一个子类,具有“所有类型的范围谢谢您的回答。但我仍然有点困惑如何不这样做o区分OWLClass和OWLIndividual。事实上,我的本体有概念和实例。为了用OWL语言实现它,我认为概念是一个类,实例是一个个体。在我的示例中,身份验证和验证在本体中声明为概念。我可以使用
OWLNamedIndividual
在WL?如果没有一个具体的例子,就很难讨论这个问题。你能将你的本体或相关部分添加到问题中吗?好的,我已经编辑了我的问题,并添加了一个具体的例子。非常感谢你的回答。事实上,我试图创建一个具有相同URI的新ObjectProperty,因为我有许多与t链接的概念他有同样的关系
<!-- 
///////////////////////////////////////////////////////////////////////////////////////
//
// Object Properties
//
///////////////////////////////////////////////////////////////////////////////////////
 -->




<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#is_a_kind_of -->

<owl:ObjectProperty rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#is_a_kind_of"/>



<!-- 
///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////
 -->




<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#AUTHENTIFICATION -->

<owl:Class rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#AUTHENTIFICATION">
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#is_a_kind_of"/>
            <owl:someValuesFrom rdf:resource="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Validation"/>
        </owl:Restriction>
    </rdfs:subClassOf>
</owl:Class>



<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Cryptography -->

<owl:Class rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Cryptography">
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#is_a_kind_of"/>
            <owl:someValuesFrom rdf:resource="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Encryption"/>
        </owl:Restriction>
    </rdfs:subClassOf>
</owl:Class>



<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Encryption -->

<owl:Class rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Encryption"/>



<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Validation -->

<owl:Class rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Validation"/>