我在Protege-OWL Editor 4.1版中为我的本体创建了一个基本的类层次结构.但是我无法在OwlViz中可视化对象属性和类之间的关系,而不是正常的层次结构或"is-a"关系.那么请告诉我如何使用OwlViz或OntoGraf显示"对象属性"?或者我是否需要在相应的owl/xml文件中进行一些修改?
在描述逻辑中,存在称为"rolification"的概念(OWL和Rules,Sec 3.2).它将概念(类)转换为角色(属性).例如,当我们滚动时R(x)
,我们得到r(x,x)
.该技术对于在DL中表达一些规则很有用.
我们如何在OWL 2中做到这一点?似乎在OWL 2规范中没有直接支持滚动.
如果你看一下OWL本体定义,你会看到一堆类定义.其中之一是以下内容:
owl:Nothing a owl:Class ;
rdfs:label "Nothing" ;
rdfs:comment "This is the empty class." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf owl:Thing .
Run Code Online (Sandbox Code Playgroud)
这是否有用,如果是的话,它是什么?
我对OWL类和子类属性的继承感到困惑。一些帖子说OWL中没有继承(OWL:如何从超类继承两个类之间的属性关系?),http://answers.semanticweb.com/questions/619/rdfs-owl-inheritance-with -josekipellet)。但是,我也发现了一些相反的讨论。例如,“面向对象软件开发人员的语义Web入门”页面(https://www.w3.org/TR/sw-oosd-primer/)提到了面向对象语言OWL和RDF:“类可以安排在具有继承的子类层次结构中”(第3.3节)。https://www.w3.org/TR/rdf-schema/#ch_subclassof提到“属性rdfs:subClassOf是rdf:Property的一个实例,用于声明一个类的所有实例都是另一个类的实例。” 因此,这使我感到困惑。现在我有以下问题:
如果没有
考虑以下示例。“讲师”和“学生”的所有属性都可用于“人”类吗?
Example:
--------
### Classes ###
:CSModule rdf:type owl:Class ;
rdfs:subClassOf :Module .
:Lecturer rdf:type owl:Class ;
rdfs:subClassOf :Person .
:Student rdf:type owl:Class ;
rdfs:subClassOf :Person .
:Module rdf:type owl:Class .
:Person rdf:type owl:Class .
### Object Properties ###
:studies rdf:type owl:ObjectProperty ;
rdfs:domain :Student ;
rdfs:range :Module .
:teaches rdf:type owl:ObjectProperty ;
rdfs:domain :Lecturer ;
rdfs:range :Module .
### Data …
Run Code Online (Sandbox Code Playgroud)我想将 Protege 中的一些类从不同的本体导入到我的本体中。例如,我需要类foaf:Person
、org:Site
、vcard:Organization
等等。
我不想自己创建它们(并修改它们的 IRI)。当我导入整个本体(Schema.org、vCard、FOAF 等)时,我有很多不需要的元素。
有什么办法吗?
在RDF中,语句用S,P和O表示; 在OWL中,owl:ObjectProperty表示谓词逻辑.
(S) (P) (O)
I like dog
<owl:Class rdf:about="Person" />
<owl:NamedIndividual rdf:about="I">
<rdf:type rdf:resource="Person"/>
<like rdf:resource="Dog"/>
</owl:NamedIndividual>
<owl:Class rdf:about="Pet" />
<owl:NamedIndividual rdf:about="Dog">
<rdf:type rdf:resource="Pet"/>
</owl:NamedIndividual>
<owl:ObjectProperty rdf:about="like">
<rdfs:domain>
<owl:Restriction>
<owl:onProperty rdf:resource="like"/>
<owl:someValuesFrom rdf:resource="Person"/>
</owl:Restriction>
</rdfs:domain>
<rdfs:range>
<owl:Restriction>
<owl:onProperty rdf:resource="like"/>
<owl:someValuesFrom rdf:resource="Pet"/>
</owl:Restriction>
</rdfs:range>
</owl:ObjectProperty>
Run Code Online (Sandbox Code Playgroud)
但如何描述我喜欢狗的"程度"呢?如何为谓词提供属性或值?我得到的一个解决方案是将一个(S,P,O)语句扩展为3个语句.例如,
(S) (P) (O)
Person isSrcOf LikeRelation
Pet isTargetOf LikeRelation
LikeRelation hasValue [0~100]
Run Code Online (Sandbox Code Playgroud)
它应该工作,但显然它会让本体大3倍:(
我很感激任何建议!
所以我一般学习RDF和OWL以及"知识表示".
1)RDF或OWL格式的限制是什么?
是否存在无法在RDF中表达的概念?但这可以用OWL表达出来吗?或者相反.
是否存在无法表达的概念?
2)这个(复杂的)例子怎么样:
"如果有人在没有意识到的情况下如何跌倒?"
你能用RDF或OWL表达这个问题吗?或者你甚至可以表达诸如"天蓝色吗?"之类的问题.
3)最后......是否有可以描述任何内容的知识表示语言?
我正在使用Protege v4.3来制作本体.我有一个关于OWL本体和DL查询的问题.
例如,在Pizza ontology中, http://owl.cs.manchester.ac.uk/co-ode-files/ontologies/pizza.owl
我可以执行DL查询
hasTopping some CheeseTopping
结果是American,AmericanHot,Cajun,..等等没关系.
现在,我尝试了DL查询
isToppingOf some American
但结果却一无所获.
由于物业isToppingOf是hasTopping的逆属性,我希望得到的结果,包括FourCheesesTopping,CheeseyVegetableTopping等从该查询(通过推理).芽它没有.
这样的自动推理有什么办法吗?
设计服务开放时间的最务实的方法是什么,以便SPARQL查询能够查询在特定时间间隔/特定时间间隔内打开的事物?
这个问题的答案应该包含:
(*简单和性能的额外点)
我是新手,我必须使用曼彻斯特OWL语法为具有类似soduku属性的网格建模.
我一直在寻找,但我似乎无法找到一种方法来制作一个公理,说"每列必须有4个单元格,并且必须具有这些值中的每一个".如在,假设4x1列,每个单元格必须包含一个数字,列必须包含所有数字[1:4].
我已经设置了一些对象,数据属性和对象属性,我将在这里留下.我将完整的.owl文件留在这里,以便可以加载,从而更容易提供帮助.
所有帮助都非常感谢.
Prefix: dc: <http://purl.org/dc/elements/1.1/>
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Prefix: GridTest: <http://www.semanticweb.org/existance/ontologies/2017/4/GridTest#>
Prefix: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Ontology: <http://www.semanticweb.org/existance/ontologies/2017/4/GridTest>
Datatype: xsd:int
Datatype: xsd:integer
ObjectProperty: GridTest:hasCell
SubPropertyOf:
GridTest:hasRelation
Domain:
GridTest:Grid
InverseOf:
GridTest:isCellOf
ObjectProperty: GridTest:hasColum
SubPropertyOf:
GridTest:hasRelation
Domain:
GridTest:Grid
Range:
GridTest:Grid
InverseOf:
GridTest:isColumOf
ObjectProperty: GridTest:hasRelation
ObjectProperty: GridTest:isCellOf
InverseOf:
GridTest:hasCell
ObjectProperty: GridTest:isColumOf
InverseOf:
GridTest:hasColum
DataProperty: GridTest:hasValue
Characteristics:
Functional
Domain:
GridTest:Cell
Range:
{"1"^^xsd:int , "2"^^xsd:int , "3"^^xsd:int , "4"^^xsd:int}
Class: GridTest:Cell
SubClassOf:
GridTest:Grid,
GridTest:hasValue exactly 1 …
Run Code Online (Sandbox Code Playgroud)