- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于语义网的初学者问题。
我有一个颜色知识库,其中包括相似的颜色、颜色修饰符(暗、亮、~ish 等)、颜色关系(更深、更亮)、颜色同义词等。我想弄清楚 RDF/OWL 是否是一个操作(主要是查询)这个 KB 的好选择。以下是我需要支持的查询。
1) 找出与给定颜色相似的所有颜色。如果我用“相似”谓词表示颜色相似性,一个简单的 Sparql 查询就可以了。同义词和关系也是如此。好的。
2) 当我需要查找标记或短语 x 是否为有效颜色时,问题变得更加棘手。如果 x 是未修改的颜色,则可以通过创建 Color 类并确保所有已知颜色都是该类的实例来解决该问题。但是如果 x 是像 "redish"这样的修改颜色呢?显然,一种解决方案是通过明确添加知识库的所有修改颜色部分。
但是,是否可以将所有修改后的颜色自动添加到 RDF 中?换句话说,是否可以定义一类包含所有修改颜色的修改颜色?这需要一些连接运算符。这可能吗?
另一种解决方案是有一些逻辑来分解 x 并检查 a) 它是否包含已知的修饰符和 b) 修改的东西是否是有效的颜色。当然,我也希望在 RDF/OWL 中描述这种逻辑。任何的想法?
在此先感谢您的任何意见或建议。
最佳答案
您想要做的事情似乎可以更好地处理,IMO,使用您最喜欢的编程语言的自定义代码段。在OWL中很难表达这些东西,而且效率肯定不高。
但是 FWIW,这是您可以做的事情。系好安全带,这里开始高级 OWL 2 建模之旅。假设您有基色“蓝色”、“绿色”、“红色”。您可以定义包含三个字符串的数据类型(我使用 Turtle 语法):
:baseColor a rdfs:Datatype;
owl:equivalentClass [
a rdfs:Datatype;
owl:withRestrictions ( [ xsd:pattern "blue|green|red" ] )
] .
:modColor a rdfs:Datatype;
owl:equivalentClass [
a rdfs:Datatype;
owl:withRestrictions (
[ xsd:pattern "(dark|light)?(blue|green|red)(ish)?" ]
)
] .
:lightColor
,
:darkColor
,
mediumColor
.
:Color
具有数据类型属性
:hasColor
:
:hasColor a owl:DatatypeProperty;
rdfs:domain :Color;
rdfs:range [
a rdfs:Dataype;
owl:unionOf ( :baseColor :modColor )
]
:Color a owl:Class;
rdfs:subClassOf [
a owl:Restriction;
owl:onProperty :hasColor;
owl:someValuesFrom xsd:string
];
owl:hasKey ( :hasColor ) .
:Color
的实例至少有一个颜色字符串,我强加颜色字符串是颜色的唯一标识符(它是一个键)。因此,每当我用颜色字符串给出颜色时,我就可以验证该字符串是否在上面给出的正则表达式模式中。假设我定义了数据类型
:darkColor
,
:lightColor
和
:mediumColor
,我也可以 express
:darker
和
:lighter
关系:
:DarkColor a owl:Class;
rdfs:subClassOf :Color, [
a owl:Restriction;
owl:onProperty :hasColor;
owl:allValuesFrom :darkColor
] .
:LightColor a owl:Class;
rdfs:subClassOf :Color, [
a owl:Restriction;
owl:onProperty :hasColor;
owl:allValuesFrom :lightColor
] .
:MediumColor a owl:Class;
rdfs:subClassOf :Color, [
a owl:Restriction;
owl:onProperty :hasColor;
owl:allValuesFrom :mediumColor
] .
:DarkColor
s 是
:darker
比所有
:MediumColor
和所有
:LightColor
.这样的公理实现起来并不容易,因为它需要引入辅助项。论文
All Elephants are Bigger than All Mice中有解释在 DL 术语中,它被称为概念产品:
:p1 a owl:ObjectProperty . # auxiliary property (do not reuse elsewhere)
:p2 a owl:ObjectProperty . # idem
:x a owl:Thing . # auxiliary individual
:darker owl:propertyChainAxiom ( :p1 :p2 ) .
:DarkColor rdfs:subClassOf [
a owl:Restriction;
owl:onProperty :p1;
owl:hasValue :x
] .
[ owl:unionOf ( :LightColor :MediumColor ) ] rdfs:SubClassOf [
a owl:Restriction;
owl:onProperty [ owl:inverseOf :p2 ];
owl:hasValue :x
] .
:lighter
执行相同操作.
关于rdf - RDF/OWL 中的字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12191283/
我知道 owl:Class 是 rdfs:class 的子类,所有 OWL 类都是 owl:Class 的成员。我还知道 owl:Thing 位于类层次结构的顶部。那么 owl:Class 和 owl
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
我认为我对 OWL 公理仍然存在根本性的误解:(。 这是我创建的一个小型测试本体: @prefix xsd: . @prefix rdf: . @prefix rdfs:
我是耶拿的新手。我想创建一个新的 OntModel 并需要将一些其他本体导入到该模型中。如果我将其写入文件,我希望该文件可以显示如下内容: 现在,我不知道如何通过jena将其他本
我认为我对 OWL 公理仍然存在根本性的误解:(。 这是我创建的一个小型测试本体: @prefix xsd: . @prefix rdf: . @prefix rdfs:
我是耶拿的新手。我想创建一个新的 OntModel 并需要将一些其他本体导入到该模型中。如果我将其写入文件,我希望该文件可以显示如下内容: 现在,我不知道如何通过jena将其他本
导航和点周围的容器 .owl 控件不再存在,但我需要它们。有人知道如何恢复导航和点的环绕吗? 最佳答案 如果有人正在寻找...这是我的解决方案,用于取回 owl-nav 和 owl-dots 周围的包
对于我认为非常简单的场景,如果能提供一些帮助,我将不胜感激;但作为 OWL 和 GraphDB 的新手,我可能犯了一些基本错误。 我有一个非常简单的 Turtle 指定的 OWL 示例,如下所示: @
我使用 Protege 创建了一个本体。 类- Person Man Woman 属性(域/范围) Knows(Person / Person) hasRelationShip(Per
我正在使用 Protege v4.3 制作本体。 我有一个关于 OWL 本体和 DL 查询的问题。 例如,在 Pizza 本体中, http://owl.cs.manchester.ac.uk/co-
例如,此问题主要发生在用户使用速度较慢的互联网或移动设备时。但是,当轮播中的页面内容/图像没有被缓存时,有时也会在更高的速度上看到闪烁。 如果页面加载并呈现第一个元素,所有轮播“幻灯片”就像一个列表一
我需要在Protégé中实现一个OWL-ontology,它包含两个类:s1和s2,都是System的实例> 类。这两个类是通过连接类s1_s2 连接起来的,其中包含属性omega。该属性必须根据以下
我一直在四处寻找为什么 OWL Full 是不可判定的,但我还没有找到一个易于理解的例子来让我理解它。 我发现一些陈述解释了这是由于“Entailment Closure”,并且这也与 OWL Ful
我试图理解 OWL 2 的以下公理,但不知道它们是哪种公理。这里 R 是角色,C 是类 ∃R⊑C ∃R⊑∃R.C C ⊑ ¬∃R ∃R ⊑ ¬C 到目前为止,我认为 1 提供了有关 R 范围的信息,但
当 Owl Carousel 在隐藏元素中启动,然后通过触发器显示该元素时,轮播项目的宽度完全错误(直到窗口调整大小): Fiddle (点击红色链接,看到损坏的布局出现,然后调整窗口大小) 这个问题
在构建轮播时,我意识到猫头鹰添加了克隆的重复项。我的猫头鹰配置看起来像这样。我如何阻止这种情况发生。 owlDfe.owlCarousel({ loop: false,
我有两张幻灯片。我用的是 OWL 1,效果很好。我想要无限循环,所以搬到了 OWL 2。 下面的代码效果很好。幻灯片保持同步,但自动播放永远不会开始。我必须拖动幻灯片或显示导航并单击下一个/上一个。
我们根据分别与 B 或 C 的实例具有关系 a_to_b 和 a_to_c 的实例的交集 (AND),将类 A 定义为 owl:equivalentClass 并将类 A2 定义为 rdfs:subC
我正在使用 rdflib 创建一个图形。我想使用我拥有的“.owl”文件中的一些术语。我如何使用 rdflib 将这个 owl 文件作为 MyImportedTerminology 导入,并访问它的术
通常,当我们说“我所有的 child 都是女性”时,我们的意思是“并且至少有一个”。名门pizza tutorial (V1.3)在第 100 页解决了这个问题,说拥有普遍限制 (owl:allVal
我是一名优秀的程序员,十分优秀!