标签: owl

从 OWL 本体获取基本命名空间

有没有一种方法可以从 OWL 本体文件中获取基本名称空间,而不使用 DOM 或类似的东西,而只使用 Jena 的 API?例如,来自 OWL 文件:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"
    xmlns="http://www.owl-ontologies.com/Ontology1254827934.owl#"
    xmlns:xsp="http://www.owl-ontologies.com/2005/08/07/xsp.owl#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:swrl="http://www.w3.org/2003/11/swrl#"
    xmlns:swrlb="http://www.w3.org/2003/11/swrlb#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xml:base="http://www.owl-ontologies.com/Ontology1254827934.owl">
Run Code Online (Sandbox Code Playgroud)

我怎样才能http://www.owl-ontologies.com/Ontology1254827934.owl在运行时得到?

rdf owl ontology jena

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

@prefix 在 sparql 中有什么作用?

我有一个问题:在 sparql 中,@prefix 做了什么:

@前缀:http : //example.org/animals/

为什么要这样写?

owl sparql protege

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

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
查看次数

根据本体验证 RDF 三元组以检查正确的结构

我是 RDF/本体论的新手,我不太清楚在这个领域的工作方式。目前我对三重验证感到困扰。我仍然以关系方式思考,首先创建一个模式,然后为了插入数据,我需要遵循该结构。

为了插入三元组,我使用 Jena,然后使用生成的字符串来执行插入命令。这是我的问题:

  • 有没有办法验证我生成的 RDF 三元组(当前使用 Jena)实际上遵循我的本体结构。

  • 或者,当我执行插入时,有没有办法让 rdf 存储(当前的 Virtuoso)通知我?我做了一些搜索,发现:How to Import Ontology into Virtuoso? 。这是否意味着我的三元组将根据我的本体进行检查/验证?

  • 还找到了RDF和OWL工作流程问题。那里说

    1. 创建我的本体之后我应该
    2. 将本体导出为 RDF,以便
    3. 将其导入 RDF 存储。将我的本体导入 Virtuoso(如:如何将本体导入 Virtuoso?中所述)是否意味着步骤 1 和 2 已完成,我现在正在执行步骤 3?

rdf sesame owl jena virtuoso

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

在 OWL 中描述字符串文字的正确方法?

对于以下 XSD:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:simpleType name="size">
  <xs:restriction base="xs:string">
    <xs:enumeration value="small" />
    <xs:enumeration value="medium" />
    <xs:enumeration value="large" />
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="jeans">
  <xs:simpleContent>
    <xs:extension base="size">
      <xs:attribute name="sex">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="male" />
            <xs:enumeration value="female" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

</xs:schema> 
Run Code Online (Sandbox Code Playgroud)

我想将 xs:enumeration 转换为 owl。我只找到了一种方法:

将字符串文字转换为 owl:Class:

:Class_2
      a       owl:Class ;
      rdfs:subClassOf dtype:EnumeratedValue ;
      rdfs:subClassOf
              [ a       owl:Restriction ;
                owl:maxCardinality "1"^^xsd:int ;
                owl:onProperty dtype:hasValue
              ] ;
      rdfs:subClassOf
              [ a       owl:Restriction ;
                owl:allValuesFrom xsd:string ;
                owl:onProperty …
Run Code Online (Sandbox Code Playgroud)

xsd owl

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

sparql 检查属性是否存在并给出零答案

这是我的最低数据:

@prefix : <http://example.org/rs#>

:item :hasContext [:weight 0.1 ; :doNotRecommend true] , [:weight 0.2 ] .

:anotherItem :hasContext [:weight 0.4] , [ :weight 0.5 ] .
Run Code Online (Sandbox Code Playgroud)

如您所见,每个item都有一个或多个 hasContext,它的对象hasContext是一个可以doNotRecommed谓词的实例。

我想要的是,如果这些实例之一(hasContext 的对象)包含 donNotRecommed,我希望总和为零。** 和总和我的意思是权重的总和**,所以换句话说,如果该属性存在,忽略所有权重(无论它们是否存在),只需将其设为零

我的查询

select ?item (SUM(?finalWeight) as ?summedFinalWeight) {
 ?item :hasContext ?context .
  optional 
  {
    ?context :doNotRecommend true .
    bind( 0 as ?cutWeight) 
  }
  optional
  {
    ?context :weight ?weight .
  } 
  bind ( if(bound(?cutWeight), ?cutWeight , if(bound(?weight), ?weight, 0.1) ) …
Run Code Online (Sandbox Code Playgroud)

rdf semantic-web owl ontology sparql

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

任何人都可以帮助我使用 RDF/OWL 可视化工具吗?

我尝试在互联网上搜索,但找不到合适的工具,所以如果有人可以为我提供指向该工具的链接,该工具可以解析和显示 RDF 和 OWL 本体的图形。

rdf semantic-web owl ontology graph-visualization

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

OWL2 XML 到 AnyLogic ALP

我目前正在从事一个项目,该项目需要某些描述现实生活场景的 OWL2 XML 文件被“转换”为 AnyLogic 模型的 ALP(XML 类型)格式,以便它们可以在应用程序中打开。这种转换最终应该通过另一个应用程序自动发生。

这些情景描述了荷兰某些地区的旅游流量。这些场景以 RDF-OWL2 格式在本地 Semantic MediaWiki 中定义和导出。在 AnyLogic 中,我们已经设法创建了我们想要的仿真模型和场景。现在,我们希望将这些场景从 MediaWiki 直接“转换”到 AnyLogic,以便无需接触 AnyLogic 应用程序即可创建仿真模型。参数的类型、类、代理等我们都已经定义好了,所以这只是“语义维基页面A中的旅游区应该变成AnyLogic中的旅游区A”的一个例子。

例如,零件输入 RDF 文件可能如下所示:

<genericTrainStation>
   <name>Station Amsterdam</name>
   <size>20km</size>
   ....    
</genericTrainStation>
Run Code Online (Sandbox Code Playgroud)

在 AnyLogic 中,如果我要在应用程序中创建相同的站点,.alp 文件中的输出将类似于...

<EmbeddedObject>
 <stuffIrrelevant></stuffIrrelevant>
 <stuffIrrelevant2></stuffIrrelevant2>
 <name>Station Amsterdam></name>
 <size>20km</size>
Run Code Online (Sandbox Code Playgroud)

问题是是否可以通过某种方式使用 RDF 补充或替换 AnyLogic ALP 文件中的某些值,直接在输入和输出之间进行转换。

到目前为止,我有两个想法:

  • 使用 XSLT 尝试执行翻译

  • 使用 AnyLogic ALP 格式作为基础,并围绕执行翻译构建编译器

我一直在寻找任何与操作 ALP AnyLogic 格式有关的资源,但无济于事。我通常正在寻求关于这两个想法的总体合理性的帮助,以及我可以在我的任务中使用的最终资源。

xml xslt owl anylogic

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

可以使用 xsd:dateTime 定义 BC 日期吗?

我正在开发一个系统来使用 OWL 和知识图来表示历史时期和里程碑。是否可以使用 xsd:dateTime 数据类型来表示 BC 日期,例如罗马帝国的开始?

xml datetime xsd owl

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