我想使用空白节点在Protege中添加一条语句。例如,如果我将其表示为Turtle RDF,则为something like:
[
rdf:type rdf:Statement ; #this anonymous resource is a Statement...
rdf:subject ex:Paul ; #...with subject Paul
rdf:predicate ex:running ; #...predicate running
rdf:object "10miles" ; #...and object "10miles"
ex:hasPeriodStart "2018-04-09T10:00:00"^^xsd:dateTime ;
ex:hasPeriodEnd "2018-04-09T12:00:00"^^xsd:dateTime ;
].
有没有办法在Protege中做类似的事情(无需使用IRI创建具名个人)?
最佳答案
Protege不支持空白节点。一种实现类似目的的方法是为空白节点分配一个临时/独立的名称空间。我将举例说明我的意思。假设我有以下乌龟语法(为了简化起见,我省略了前缀),
:jane :firstname "Jane";
:lastname "Doe";
:contactInfo [:phonenumber "011 739 4751";
:email "[email protected]"] .
然后
[:phonenumber "011 739 4751";
:email "[email protected]"]
是一个空白节点。可以使用空白节点
_:janeContactInfo
将其重写,如下所示::jane :firstname "Jane";
:lastname "Doe";
: contactInfo _:janeContactInfo .
_:janeContactInfo :phonenumber "011 739 4751";
:email "[email protected]" .
可以用曼彻斯特语法(这是Protege中使用的语法)表示为:
ObjectProperty: contactInfo
DataProperty: firstname
DataProperty: lastname
DataProperty: phonenumber
DataProperty: email
Individual: jane
Facts:
ex:firstname, "Jane",
ex:lastname, "Doe",
ex:contactInfo, _janeContactInfo
Individual: _janeContactInfo
Facts:
ex:phonenumber, "011 739 4751"
ex:email, "[email protected]"
您可以根据需要将
janeContactInfo
个人放置在临时/单独的命名空间中。