{"action":"created","issue":{"url":"https://api.github.com/repos/web-payments/web-payments.org/issues/38","repository_url":"https://api.github.com/repos/web-payments/web-payments.org","labels_url":"https://api.github.com/repos/web-payments/web-payments.org/issues/38/labels{/name}","comments_url":"https://api.github.com/repos/web-payments/web-payments.org/issues/38/comments","events_url":"https://api.github.com/repos/web-payments/web-payments.org/issues/38/events","html_url":"https://github.com/web-payments/web-payments.org/issues/38","id":140052733,"number":38,"title":"sec:owner owl:inverseOf sec:publicKey ?","user":{"login":"elf-pavlik","id":876431,"avatar_url":"https://avatars.githubusercontent.com/u/876431?v=3","gravatar_id":"","url":"https://api.github.com/users/elf-pavlik","html_url":"https://github.com/elf-pavlik","followers_url":"https://api.github.com/users/elf-pavlik/followers","following_url":"https://api.github.com/users/elf-pavlik/following{/other_user}","gists_url":"https://api.github.com/users/elf-pavlik/gists{/gist_id}","starred_url":"https://api.github.com/users/elf-pavlik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elf-pavlik/subscriptions","organizations_url":"https://api.github.com/users/elf-pavlik/orgs","repos_url":"https://api.github.com/users/elf-pavlik/repos","events_url":"https://api.github.com/users/elf-pavlik/events{/privacy}","received_events_url":"https://api.github.com/users/elf-pavlik/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-03-11T00:48:56Z","updated_at":"2016-03-24T04:17:06Z","closed_at":null,"body":"Should one consider sec:owner and sec:publicKey as inverse properties?\r\n[Linked Data Signatures Verification Algorithm](https://web-payments.org/specs/source/ld-signatures/#signature-verification-algorithm) states:\r\n> Confirm that the Linked Data Document that describes the public key specifies its owner and that its owner's URL identifier can be dereferenced to reveal a bi-directional link back to the key\r\n\r\nIf sec:publicKey doesn't work as inverse of sec:owner, i would prefer to just use sec:owner in reverse direction and not use sec:publicKey all together.\r\n\r\nI can find security vocabulary html spec\r\nhttps://web-payments.org/vocabs/security\r\n\r\nAnd JSON-LD context\r\nhttps://w3id.org/security/v1\r\n\r\nI can't find RDFS/OWL documents which could provide statements like owl:inverseOf"},"comment":{"url":"https://api.github.com/repos/web-payments/web-payments.org/issues/comments/200657270","html_url":"https://github.com/web-payments/web-payments.org/issues/38#issuecomment-200657270","issue_url":"https://api.github.com/repos/web-payments/web-payments.org/issues/38","id":200657270,"user":{"login":"elf-pavlik","id":876431,"avatar_url":"https://avatars.githubusercontent.com/u/876431?v=3","gravatar_id":"","url":"https://api.github.com/users/elf-pavlik","html_url":"https://github.com/elf-pavlik","followers_url":"https://api.github.com/users/elf-pavlik/followers","following_url":"https://api.github.com/users/elf-pavlik/following{/other_user}","gists_url":"https://api.github.com/users/elf-pavlik/gists{/gist_id}","starred_url":"https://api.github.com/users/elf-pavlik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elf-pavlik/subscriptions","organizations_url":"https://api.github.com/users/elf-pavlik/orgs","repos_url":"https://api.github.com/users/elf-pavlik/repos","events_url":"https://api.github.com/users/elf-pavlik/events{/privacy}","received_events_url":"https://api.github.com/users/elf-pavlik/received_events","type":"User","site_admin":false},"created_at":"2016-03-24T04:17:06Z","updated_at":"2016-03-24T04:17:06Z","body":"Given: \r\n* My Identity Provider Service supports [Triple Pattern Fragments](http://www.hydra-cg.com/spec/latest/triple-pattern-fragments/) (http://linkeddatafragments.org/concept/)\r\nWhen:\r\n* Client tries to verify ownership of a key \r\n```ttl\r\n<https://alice.example/keys/1#key> a sec:Key ;\r\n  sec:owner <https://alice.example/#identity> .\r\n```\r\nThen:\r\n* Client needs to request Triple Pattern Fragment\r\n```\r\nhttps://alice.example/api/tpf?s={https%3A%2F%2Falice.example%2Fkeys%2F1%23key}&p={https%3A%2F%2Fw3id.org%2Fsecurity%23owner}\r\n```\r\n```json\r\n{\r\n  \"subject\": \"https://alice.example/keys/1#key\",\r\n  \"predicate\": \"sec:owner\"\r\n}\r\n```\r\n\r\nIn case where I automatically generate content for https://alice.example/#identity I could easily include triple with reverse property in identity document\r\n```ttl\r\n<https://alice.example/keys/1#key> sec:owner <https://alice.example/#identity> .\r\n```\r\n\r\nBut it requires some custom logic to include sec:publicKey triple if owl:inverseOf does not exist.\r\n\r\nEven better I would propose to change sec context to alias\r\n```json\r\n{ \r\n \"@context\": {\r\n    ...\r\n   \"sec:publicKey\": { \"@reverse\": \"sec:owner\" }\r\n  }\r\n}\r\n```"}}