SIOC/CombiningOntologies
This illustrates a use case in SIOC where an inverse of foaf:holdsAccount is probably necessary express the fact that a sioc:User (subclass of foaf:OnlineAccount) account belongs to a person. We used a fictional property foaf:accountOf in this example to reflect this.
Note: sioc:User has a URI
Note2: foaf:Person is a blank node
@prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sioc: <http://rdfs.org/sioc/ns#> . sioc:User rdfs:subClassOf foaf:OnlineAccount . <http://www.johnbreslin.com/blog/author/cloud/> a sioc:User ; foaf:accountName "Cloud" ; foaf:accountOf _:person ; sioc:created "1999-11-30T00:00:00" . _:person a foaf:Person ; foaf:mbox_sha1 "9a6b7eefc08fd755d51dd9321aecfcc87992e9a2" ; foaf:firstName "John" ; foaf:surname "Breslin" .
RDF/XML representation:
<sioc:User rdf:about="http://www.johnbreslin.com/blog/author/cloud/"> <foaf:accountName>Cloud</foaf:accountName> <sioc:created>1999-11-30T00:00:00</sioc:created> <foaf:accountOf> <foaf:Person> <foaf:firstName>John</foaf:firstName> <foaf:surname>Breslin</foaf:surname> <foaf:mbox_sha1>9a6b7eefc08fd755d51dd9321aecfcc87992e9a2</foaf:mbox_sha1> </foaf:Person> </foaf:accountOf> </sioc:User>
In the mailing list discussion it was proposed to use a rdfs:seeAlso as a temporary solution (see discussion post #5), but that does not solve much.
Discussion on alternatives as timbl and danbri mentioned the use of owl:inverse on a rdfs:label
Note: the RDF/XML is an experiment how to express this relation using owl:inverse as proposed by DanBri and TimBL. -- CaptSolo
<foaf:Person rdf:ID="chris"> <rdfs:label>Person</rdfs:label> <foaf:name>Christoph</foaf:name> </foaf:Person> <sioc:User rdf:ID="goern"> <sioc:name>goern</sioc:name> <foaf:accountOf rdf:resource="#chris" /> </sioc:User> <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/accountOf"> <owl:inverse> <rdf:Property> <rdfs:label>holds account</rdfs:label>i </rdf:Property> </owl:inverse> </rdf:Property>
this assumed foaf:holdsAccount has a rdfs:label of "holds account" (which is true)
:chris a <http://xmlns.com/foaf/0.1/Person>; rdfs:label "Person"; <http://xmlns.com/foaf/0.1/name> "Christoph" . :goern a <http://rdfs.org/sioc/User>; <http://rdfs.org/sioc/name> "goern"; <http://xmlns.com/foaf/0.1/accountOf> :chris . <http://xmlns.com/foaf/0.1/accountOf> a rdf:Property; owl:inverse [ a rdf:Property; rdfs:label "holds account" ] .
I'm still a bit confused... Why exactly can't we use this (below).
Is the problem because the sioc:User (ie. the OnlineAccount) might be a bNode and note named by URI? --DanBri
<sioc:User rdf:about="http://www.johnbreslin.com/blog/author/cloud/"> <foaf:accountName>Cloud</foaf:accountName> <sioc:created>1999-11-30T00:00:00</sioc:created> </sioc:User> <foaf:Person> <foaf:holdsAccount rdf:resource="www.johnbreslin.com/blog/author/cloud/" /> <foaf:firstName>John</foaf:firstName> <foaf:surname>Breslin</foaf:surname> <foaf:mbox_sha1>9a6b7eefc08fd755d51dd9321aecfcc87992e9a2</foaf:mbox_sha1> </foaf:Person>