如何在 Protege 中添加匿名个人?
How can I add anonymous individuals in Protege?
我想使用空白节点在 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 不支持空白节点。实现类似功能的一种方法是为空白节点分配一个 temporary/separate 名称空间。我会给你一个例子来说明我的意思。假设我有以下 turtle 语法(为了简短起见,我省略了前缀),
:jane :firstname "Jane";
:lastname "Doe";
:contactInfo [:phonenumber "011 739 4751";
:email "janedoe@examples.com"] .
然后
[:phonenumber "011 739 4751";
:email "janedoe@examples.com"]
是一个空白节点。这可以使用空白节点 _:janeContactInfo
重写如下:
:jane :firstname "Jane";
:lastname "Doe";
: contactInfo _:janeContactInfo .
_:janeContactInfo :phonenumber "011 739 4751";
:email "janedoe@examples.com" .
这可以用曼彻斯特语法(这是 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, "janedoe@examples.com"
如果需要,您可以将 janeContactInfo
个人放在 temporary/separate 命名空间中。
有基于 RDF-Protege, that is an ONT-API 的分支,可以通过 SPARQL 选项卡(通过 INSERT
和 BNODE()
)实现。
虽然RDF-Protege目前是一种"pet-project"开发潜力较弱的一种,但我希望这个功能对某人有用。
更新:
现在也可以在 RDF 树选项卡上创建匿名个人:
我想使用空白节点在 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 不支持空白节点。实现类似功能的一种方法是为空白节点分配一个 temporary/separate 名称空间。我会给你一个例子来说明我的意思。假设我有以下 turtle 语法(为了简短起见,我省略了前缀),
:jane :firstname "Jane";
:lastname "Doe";
:contactInfo [:phonenumber "011 739 4751";
:email "janedoe@examples.com"] .
然后
[:phonenumber "011 739 4751";
:email "janedoe@examples.com"]
是一个空白节点。这可以使用空白节点 _:janeContactInfo
重写如下:
:jane :firstname "Jane";
:lastname "Doe";
: contactInfo _:janeContactInfo .
_:janeContactInfo :phonenumber "011 739 4751";
:email "janedoe@examples.com" .
这可以用曼彻斯特语法(这是 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, "janedoe@examples.com"
如果需要,您可以将 janeContactInfo
个人放在 temporary/separate 命名空间中。
有基于 RDF-Protege, that is an ONT-API 的分支,可以通过 SPARQL 选项卡(通过 INSERT
和 BNODE()
)实现。
虽然RDF-Protege目前是一种"pet-project"开发潜力较弱的一种,但我希望这个功能对某人有用。
更新:
现在也可以在 RDF 树选项卡上创建匿名个人: