简体   繁体   English

使用 protege 在 OWL 中排序

[英]Sequence in OWL using protege

I'm trying to define a sequence of action in OWL using protege.我正在尝试使用 protege 在 OWL 中定义一系列操作。 I have read the following topics:我已阅读以下主题:

The problem I have is that an individual can be in different course of action.我遇到的问题是,一个人可以采取不同的行动。 I hope the following example helps:我希望以下示例对您有所帮助:

I have the class "Action" and class "Course of Action".我有“行动”课程和“行动课程”课程。

For Action I have the following individuals: "Say Hello", "Give Your Name", "Ask a question", "Say Good Bye"对于行动,我有以下个人:“打个招呼”、“说出你的名字”、“问一个问题”、“说再见”

For Course of Action I want to have 2 different sequences:对于行动过程,我想要 2 个不同的序列:

  1. Say Hello - Give your Name - Say Good Bye打个招呼 - 说出你的名字 - 说再见
  2. Say Hello - Ask a question - Say Good Bye打个招呼 - 问一个问题 - 说再见

"Say Hello" will be linked to two individual by the property hasNext and I will not be able to find the exact course of action. “Say Hello”将通过属性 hasNext 链接到两个人,我将无法找到确切的操作过程。 Is it possible to do what I want in OWL?可以在 OWL 中做我想做的事吗?

This is something you can model, but you'll need to distinguish between the actual sequences and the steps within them.这是您可以建模的东西,但您需要区分实际序列和其中的步骤。 This is typically modeled by a linked list.这通常由链表建模。 RDFS defines a list vocabulary with rdf:first , rdf:rest and rdf:nil , but you probably don't want to co-opt that terminology in your OWL ontology. RDFS 使用rdf:firstrdf:restrdf:nil定义了一个列表词汇表,但您可能不想在 OWL 本体中选择该术语。 Instead, you'd do something like this相反,你会做这样的事情

:seq1step1 :hasAction :SayHello ;
           :hasNextStep :seq1step2 .

:seq1step2 :hasAction :GiveYourName ;
           :hasNextStep :seq1step3 .

:seq1step3 :hasAction :SayGoodbye ;
           :hasNextStep :emptySeq .


:seq2step1 :hasAction :SayHello ;
           :hasNextStep :seq2step2 .

:seq2step2 :hasAction :AskAQuestion ;
           :hasNextStep :seq2step3 .

:seq2step3 :hasAction :SayGoodbye ;
           :hasNextStep :emptySeq .

This does mean your queries need to be in terms of steps rather than the specific actions , but that's actually necessary because otherwise:这确实意味着您的查询需要根据步骤而不是具体操作,但这实际上是必要的,因为否则:

"Say Hello" will be linked to two individual by the property hasNext and I will not be able to find the exact course of action. “Say Hello”将通过属性 hasNext 链接到两个人,我将无法找到确切的操作过程。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM