-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
past, present and future activities (e.g. ReadLater, Reading, Read) #93
Comments
👍 |
PROPOSAL: modeling it similar to schema.org |
What's the actual proposal here? We already have a as:Read activity, and we already have the ability to specify completed, ongoing and future activities through use of the startTime/endTime properties. |
@jasnell how does one set startTime to 'sometimes in next days' ? |
Those functions are not yet supported. It's not clear yet if they'd be
|
"@jasnell how does one set startTime to 'sometimes in next days' ?"
|
I do not think that it is necessary to be able to express 'sometimes in next days'. A widely installed software offers options like "this week" or "next week" in the user interface and this is technically converted to timestamps. |
I think we drifted into taking 'sometimes in next days' specifics. I see it practical just to mark activity as intended without even trying to assign specific date to it. Similar with current status for ongoing activities which i may simply not know when they will end. Other approach I can see - instead of using status may simply define additional sub types of an Activity:
Which one could use in combination with specific verbs {
"@type": ["Read", "FutureActivity"],
...
} Since @type pretty much just means inclusion (non exclusive) in certain sets of things, we could just define such 3 generic sets and use rdf:type to express inclusion. We would also need to define them as owl:disjointWith Once again, I believe we all can think of situation when we really didn't want to set any even most rough start date for something we plan to do in a future, or end date on something we do in a present. |
@elf-pavlik that's entirely possible but it's not clear yet how useful it would be. Perhaps experiment with this as an extension and see where it goes? |
After talking with @bblfish we found before, after and interesting path to investigate. It also allows to specify dependencies between activities e.g. "I plan to Hitchhike Berlin -> Paris before I will Attend SocialWG: F2F3" |
yes, to do this means you start getting into temporal reasoning, something like interval algebra. You don't want to just have a relation such as past, present or future since then you would not be able to make sense of the meaning of those relations outside of the context of the document. Ie: after merging two graphs say one in the distant past and one in a nearer future, the relation past or present would no longer have any determinate meaning. |
This is likely something that is worth exploring via an extension. It's easy to imagine a simple vocabulary with terms such a {
"@context": [
"http://www.w3.org/ns/activitystreams",
{
"t": "http://example.org/temporal#"
}
],
"@type": ["Watch", "t:PendingActivity"],
"actor": "acct:joe@example.org",
"object": {
"@type": "Video",
"url": "http://example.org/foo.mpg"
},
"t:afterTime": "2015-12-12:12:34:56Z"
}
{
"@context": [
"http://www.w3.org/ns/activitystreams",
{
"t": "http://example.org/temporal#"
}
],
"@type": ["Watch", "t:PendingActivity"],
"actor": "acct:joe@example.org",
"object": {
"@type": "Video",
"url": "http://example.org/foo.mpg"
},
"t:after": {
"@type": ["Listen", "t:PendingActivity"],
"actor": "acct:sally@example.org",
"object": {
"@type": "Audio",
"url": "http://example.org/bar.mp3"
}
}
}
Seems like this kind of mechanism would be useful but I'm not convinced it needs to be in the core vocabulary. |
Closing. If you'd like to propose specific new terms to be added to the vocabulary, please submit a PR and open an issue on the w3c tracker pointing to it. |
@rhiaro I see you use classes Todo, Doing and Done which look similar to proposed by me FutureActivity, CurrentActivity, PastActivity http://www.essepuntato.it/lode/owlapi/http://vocab.amy.so/blog.owl |
-1 to adding any new terms which has to do with the temporality of activities. Capturing the past/current/future nature of an activity can be done by simply using an existing vocabulary on time/events. In fact, AS is equipped with start/endTime properties to handle this. Qualified relations (which is how activities are modelled with) permits us to do this. |
@elf-pavlik Todo, Doing and Done are more like named collections of posts; just a way of sorting things. |
@rhiaro I thought that rdfs:Class / owl:Class also provides way for naming a set (collection) of things; which also provides a way to sort/filter things when we query a dataset. @csarven as:startTime/as:endTime doesn't seem well suit to deal with uncertain dates - sometimes in the future, sometimes in the past, currently. Once again mentioned by @bblfish interval algebra could come handy here. @jasnell how about your experiment with Interval Vocabulary? |
@csarven could you please provide example of Future/Todo activity? If one sets certain startTime in the future, but will not update it and not start activity, it will result in appearing as Current/Doing activity accidentally not intentionally. Having Future/Todo subclass gives IMO simple pattern to avoid it. Real world example we can work with: WatchLater used by youtube, vimeo and many other platforms. @cwebber @xray7224 My proposal: {
"@context": "http://www.w3.org/ns/activitystreams",
"@id": "https://graph.wwelves.org/07b8c15c-bbd0-4f7d-8274-092cf63aec1b",
"@type": ["Watch", "Todo"],
"actor": "https://wwelves.org/perpetual-tripper",
"object": "https://youtu.be/3vubqzjL3fs"
} I would like to encourage everyone to include constructive counter proposal in replies 😄 |
It would seem to me that the absence of a date of any type implies something which has not actually happened. This can be interpreted as a todo. I think adding an additional It would be easier to sort a |
@silverbucket I understand your reasoning but IMO it doesn't fit Open World Assumption (back to #15). So when you have an Activity with no dates, you can't tell if it didn't start yet or you just just miss a piece of information. Using additional type Todo removes this ambiguity and makes this information explicit. We could add to AS2.0 validator checking for contradictions if Todo type used together with date in the past. Side note: Type/Class names start by convention with capital letter so Todo not todo, same applies to everything else used for value of |
I don't understand how it does or does not fit the Open World Assumption. When an object doesn't have a date, you are either assuming it describes something that already happened, something that has not yet happened, or something where whether it was carried out or not is unknown. By just stacking on more Are there other examples of multiple types where it's meaning is already defined clearly? |
What do you do if you watched or read something in a past but don't know when you did it? Once can simply omit the date to honestly represent unknown. If you start reasoning that it means 'sometimes in the future' you start forcing people to make 'sometimes in the past' explicit. As I understand Open World Assumption, if one encounters object of type Activity with no startDate and no endDate than one can't classify it as Past/Present/Future (Done/Doing/Todo).
Any object can have any number of types, where certain type one can consider as *a set of things and giving some thing that type marks it as included in that set. I also recommend keeping in mind what @csarven explains about Anyone can say anything about anything |
re: #93 (comment) Surely you've looked at http://www.w3.org/TR/owl-time/ |
re: #93 (comment) If you have information for the time dimension, it is an event/activity. If you don't have it, it is just a list of stuff. If one does not update their activity status that is their problem. This is a data quality issue and we don't escape that problem in any shape or form, and that's certainly not subject to WatchLater/ToDo items. "Watch"ing has a specific meaning to YouTube which is probably in agreement with our common understanding of "watching", nevertheless, when you leave it to the machines, it is an open field. The proposal (with example) you make is still unclear even if you put "Watch" and "Todo" in there. What does it say exactly? An actor will get around to "watch" a webpage? You see, you as a human have prior knowledge to infer that something with the youtube domain and with the classes that you've picked, it means that you will get around to watch the main video that's on that URL. For a machine to "get" that, you describe much further. |
By definition that case has a date attached, which is "before now". You don't have to know the exact time something happened, but you do have to know it happened before the time in which the object was created. That should be explicit because otherwise the object has no meaning (every time you see it, it'll always mean that maybe it happened before you are seeing it at the very moment, and so on into the future - which means it's constantly changing meaning). In my opinion, this leaves way more ambiguity and confusion than if we have the opposite assumption - that anything without the corresponding |
Could you please imagine write alternative to example below using OWL Time? I'll also change Todo to FutureActivity just to emphasize that even if I will look at it in 20 years from now, it still will belong to the set of activities to eventually happen at some unknown time in the future. {
"@context": "http://www.w3.org/ns/activitystreams",
"@id": "https://graph.wwelves.org/07b8c15c-bbd0-4f7d-8274-092cf63aec1b",
"@type": ["Watch", "FutureActivity"],
"actor": "https://wwelves.org/perpetual-tripper",
"object": {
"@id": "https://youtu.be/3vubqzjL3fs",
"@type": "Video"
}
} |
I work on transforming W3C mailing lists archive into SIOC based dataset. In next step I will develop basic reader which will understand common affordances, starting with as:Read. I want to use it in past, present and future tense.
One can imagine very similar requirements for example in http://mediagoblin.com but for as:Listen and as:Watch
The text was updated successfully, but these errors were encountered: