Log of the #duraspace-ff channel on chat.freenode.net

Using timezone: Eastern Standard Time
* ksclarke leaves00:42
* ajs6f joins09:28
cbeer: We lost JSON by moving to the RDF-backed responses, right?09:31
* ksclarke joins09:44
* github-ff joins09:54
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/63GTUw
fcrepo4/master 0a47a88 ajs6f: Removing unused imports, unused local variables
* github-ff leaves
<cbeer>ajs6f: we lost jax-b json. we have rdf+json10:08
(which may be distinct from json-ld.. or maybe not)10:09
<ajs6f>I was just going to look at JSON-LD. Maybe we already did that?
<cbeer>if that's what jena spits out10:10
<ajs6f>When I ask the demo kitchen sink instance for "application/json" or "text/json", I get an error.
<cbeer>application/rdf+json
<ajs6f>Maybe we need to add a mimetype to a ist somewhere?
Hm. That looks useful, but it doesn't look like JSON-LD>10:11
<cbeer>yeah. there are competing json rdf serializations
* travis-ci joins
[travis-ci] futures/fcrepo4#928 (master - 0a47a88 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/5a1cfd030768...0a47a881fa40
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/9474940
* travis-ci leaves
<cbeer>https://github.com/afs/jena-jsonld, maybe?10:12
<aawoods>As a reminder, Fedora call @10:45am ET: https://wiki.duraspace.org/display/FCREPO/2013-07-25+-+Fedora+Committer+Meeting10:15
<ajs6f>aawoods: Also a fcrepo3 meeting at 11AM.10:19
cbeer: I'll take a look at that— thanks!
<aawoods>ajs6f: It seems that the f3 and f4 meetings are basically turning into one meeting.10:21
<cbeer>ajs6f: i'm thinking about adding a method to the GraphSubjects interface to make it easier to do this LDP stuff10:41
the method would get the current url, i guess
that LDP wants us to use to hang pagination and inlined resources onto10:42
maybe GraphSubjects just needs a generic notion of "context"
and i guess for the default impl, we could just return a blank node.10:44
<ajs6f>Yes, I think it definitely is time for a notion of "context".10:47
current URL = request URL?
<cbeer>yes10:48
<ajs6f>How about UriInfo is part of HypotheticalContxt?
<aawoods>team, coming?10:49
<cbeer>barmintor, ajs6f ?10:54
<ajs6f>Five minutes yet.10:55
<barmintor>yeah, five minutes!
<ajs6f>I'm on a Hangout with Martin Dow, trying to figure out what Acuity might be able to bring into FF.
<cbeer>then what call am I on with aawoods now?
<ajs6f>You guys are on a date together?10:56
<barmintor>cbeer: how long ahead has you on/off sprint schedule been determined?10:57
<cbeer>0 days.
<barmintor>cbeer: mgmt wants me to skip first two sprints of beta, then be on for some set of 3 of the last 8.
(jaxrs2 stuff is on the side)10:58
trying to figure out which 3 sprints would be good. Also not supposed to be 3 consecutive sprints.
<jonathangee>mondaytofriday++10:59
<barmintor>it's like a puzzle...
* jcoyne joins11:03
Does FF have an analog for "redirect" datastreams?
<ajs6f>Not yet.11:04
You can store an URL and use it at the applications level...
But there's no backend web client. yet.
<jcoyne>ajs6f: One thing we hate about redirect in Fedora 3 is that you have to store a full url. This makes it unportable.11:05
I'd rather have it relative to the repository root.
<cbeer>jcoyne: within the repo?
<jcoyne>or have that be an option.
yes
<ajs6f>jcoyne: Sure. Well, if you just store URLs and let your scripted framework deal with them, you can do what ever you want.
<barmintor>jcoyne: you… what?
<cbeer>jcoyne: if it's in the repo, we have copy/clone/whatever nodes in JCR that are probably more what you want anyway.11:06
<jcoyne>barmintor: working on archivesphere. Most originals specify to transcode a dissemination copy and a preservation copy.
<ajs6f>jcoyne/cbeer: Good point. You may want to step back and ask why you're using redirects to begin with. There may be a better way now.
<jcoyne>barmintor: sometimes the preservation copy is the same as the original.
barmintor: but we don't want to clone a copy.
ajs6f: I'm trying to get the FF perspective, because I don't want to build something that won't migrate to Fedora 411:07
<ajs6f>jcoyne: This might be much better handled in-repo via policy-driven storage and a sequencer or two.
But that's all fcrepo4-specific funcitonality.
<barmintor>this feels like one of those situations where the crappiness of services is making people hitchhike on the default dissemination of datastreams11:08
<ajs6f>barmintor: jcoynes usecase?11:09
meaning he'd use disseminators if they weren't so hard to use?
<barmintor>ajs6f: yes, but cbeer once was doing something very similar at WGBH
<ajs6f>yeah. It's a dang shame.
Let's fix that in 4.
<barmintor>ajs6f: not just hard to implement: it's lousy to redirect to (at best) another webapp in the server, that calls back to fedora, and generates a response you pipe back to the original client11:10
<ajs6f>barmintor: That's part of what I meant. Not just the arcane XML.
<barmintor>jcoyne: Did you think about dealing with this as a matter of indexed RELS-INT attributes?11:11
<ajs6f>barmintor: Although the whole backend thing has been helpful to us to scale out services. We sometimes put multiple nodes behind a single Fedora node to support a dissemination.
<jcoyne>barmintor: Yes, that's what I've been thinking of doing.
<barmintor>jcoyne: that's what I do at Columbia11:12
<jcoyne>barmintor: should I just say 'dissemintation' isSameAs 'original' ?
barmintor: if you have code to point at, that would be great.
<barmintor>what it sounds like to me is that you have 1 or more datastreams, and a multiple disseminations that basically decide which DS's content to send back11:13
jcoyne: that's not exactly what I would do, I'd have 'original' fulfillsRole 'disseminate'11:14
or somesuch
<ajs6f>barmintor reverses the polarity!
<barmintor>I'm very dextrous11:15
jcoyne: https://github.com/cul/active_fedora_relsint
<jcoyne>barmintor++11:16
<barmintor>and then...
jcoyne: https://github.com/cul/cul-scv/blob/passenger_dev/app/models/generic_resource.rb#L4811:17
jcoyne: you would just do that kind of business at index time11:18
<jcoyne>barmintor: excellent.
* jongibson joins11:20
<cbeer>hm. ajs6f: LDP calls for adding HTTP headers to some responses. Is there a right way to add those to e.g. Dataset FedoraNodes#describe without adding machinery we don't have yet?11:24
<barmintor>aawoods: In general, I think it's a good idea- just a question of getting the pacing right.
<cbeer>and hopefully defined by people actually consuming those releases.
<barmintor>cbeer++ // excellent point11:25
<ajs6f>cbeer: You mean adding arbitrary headers? If they're not totally arbitrary (like defined by LDP) we can add them in the RdfProvider.11:26
That's where I would think to do it.
<cbeer>ajs6f: they also are relevant to the HTML provider though
<ajs6f>Okay, both providers. Anyway, I'm claiming that it's a provider-level thing, not a resource-level thing.
If you see what I mean?
<cbeer>ok
<ajs6f>Maybe we want an abstract LDPProvider that HtmlProvider and RdfProvider extend?11:27
You know I love me some abstract base classes. (He says, winking at barmintor.)
* barmintor howls in agony
<ajs6f>Fedora 4: You will howl in agony.
<jcoyne>barmintor: can https://github.com/cul/active_fedora_relsint be transfered to projecthydra or would you like us to submit PRs to you?
<barmintor>jcoyne: I think if the hydra org wanted to fork and be canonical, CUL would be delighted11:28
jcoyne: just don't roll it into AF11:29
<jcoyne>barmintor: okay
<barmintor>jcoyne: I say that because having an external DS model impl has helped me find some bugs in AF in the past11:30
jcoyne: if you fork, let me know and I'll update the description under cul to point to hydra11:31
<cbeer>i've lost the thread of this conversation. aawoods: can we be sure to re-cap this on list?11:32
<aawoods>cbeer: sure
<ajs6f>cbeer: We're releasing every three minutes, with printed documentation for each release.
We just released right now.
And again.
<cbeer>ajs6f: ah, cool. i think DGI knows something about printing docs.
<ajs6f>And beautiful shirts.11:33
<jonathangee>we looove printed docs
books and books of docs
mostly its because we hate trees
trees--11:34
<jcoyne>DGI: Getting rid of all these damn trees.11:37
<ajs6f>cbeer: That jena-jsonld module is what we want, but it's young and not published to Maven, so I may just rewrite the three or so classes in it in our code. Does that sound crazy?11:40
<cbeer>ajs6f: yes. sounds crazy. publish it to maven.fcrepo.org?11:41
<ajs6f>Hm. I hate it when you stop me from doing crazy things. DAND YOUR COMMON SENSE!11:43
s/DAND/DANG/
<cbeer>ajs6f: how do i use JAX-RS to parse the query parameter like http://example.org/container1?non-member-properties11:44
s/like/in a uri like/
<ajs6f>@QueryParam isn't what you want? Or you want the _name_ of the param?
<cbeer>i want to know about the presence of the param that doesn't have a value
<barmintor>off the call for a sec, brb11:45
<ajs6f>cbeer: But do you know the name of the param?
<cbeer>yes
<ajs6f>You can just check for null.11:46
<cbeer>ajs6f: and that's different than not provided at all?
<ajs6f>If it's there with no value in the URI and you ask for it (say) as a String, it will have the value "".
(empty string)
But if it's not there at all, it will be null.11:47
<cbeer>ok, thanks
<ajs6f>I would just use if (myQueryParam != null)11:48
Or the like.
<barmintor>oh, right11:52
<pivotal-bot>Chris Beer estimated "Support LDP-style resource inlining" as 2 points https://www.pivotaltracker.com/story/show/5380573912:01
Chris Beer started "Support LDP-style resource inlining" https://www.pivotaltracker.com/story/show/53805739
Chris Beer estimated "turn mixin membership into rdf:type assertions" as 2 points https://www.pivotaltracker.com/story/show/5380496112:03
Chris Beer started "turn mixin membership into rdf:type assertions" https://www.pivotaltracker.com/story/show/53804961
<ajs6f>cbeer: I guess we should also turn rdf:type assertions into mixin membership, eh?12:11
Which implies exposing the mixin registry to HTTP in some way that creates URIs.
<cbeer>maybe.12:12
i think it's probably fine for the mixin resource URIs to be not-resolvable/not-resolvable-within-fcrepo4
after all, mixins and primary types are namespaced things12:13
<ajs6f>Mm. I'll agree that we should start there.
I'd love to expose the mixin registry as RDFS or OWL.
<cbeer>that's in the cnd-to-rdfs branch already.
but not exposing the mixins at a uri-per-mixin or anything useful like that12:14
<ajs6f>Coo.
l.
We can take it further as we have time.
<cbeer>the other thing i've punted on is RDFS updates causing changes in the CND
but i did wire in a submit a cnd, change the node types.
<ajs6f>Oh, cool. That's really nice.12:15
DId you find it more difficult to translate the other way?
<cbeer>ajs6f: i couldn't figure out how to get the NodeTypeDefinition out of the NodeTypeManager in order to edit it12:16
ajs6f: it seems like they only want whole-sale replacement
<ajs6f>I see.12:25
<cbeer>i took a quick spin through MODE to see if they had some private or non-jcr way to do that and came up empty12:27
but probably worth checking with them at some point
but i think rhauch must be on vacation again
* ajs6f leaves12:34
* github-ff joins13:28
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/8WH9ww
fcrepo4/master c7e62ad Chris Beer: LDP resource inlining
* github-ff leaves
<cbeer>oh, drat. it'd be nice if i finished the RdfProvider work first.13:29
<aawoods>jonathangee: Regarding the indexing/search work that was done for the OR2013 dev challenge, do you feel like there may be something generally useful there?13:31
<jonathangee>there is probably something useful there. the upei part of that team, paul and jiang have continued to do some work on it, so they would be the best ones to ask about it13:33
i believe they are intending to continue working on indexing for the next while.
<aawoods>jonathangee: Thanks, I will put their names against "search" when that topic arises.13:34
<ksclarke>huh, so committer meetings are in a hangout (with IRC)? are those youtubed versions or has a plain old hangout accommodated all attendees so far?13:36
<aawoods>ksclarke: so far we have not hit the 10-person limit13:37
but we will likely need to fall back on ReadyTalk soon
as we do not use the video anyways.
<ksclarke>I see the wiki goes from 3-7 to 7-25... what's the frequency of them? two week, to correspond to sprints?13:38
<aawoods>no, the practice of keeping minutes lapsed for some time... it is a weekly call.
<ksclarke>10:45 every thurs then?13:39
EDT
<aawoods>for now, yes. Stay tuned on the list for any changes to that time.13:40
* travis-ci joins13:44
[travis-ci] futures/fcrepo4#929 (master - c7e62ad : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/0a47a881fa40...c7e62ad413a8
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/9483510
* travis-ci leaves
<pivotal-bot>Chris Beer finished "Support LDP-style resource inlining" https://www.pivotaltracker.com/story/show/5380573914:02
Chris Beer added comment: "https://github.com/futures/fcrepo4/commit/c7e62ad413a89f43d09eef3aa407190bb44407da" https://www.pivotaltracker.com/story/show/53805739
Chris Beer added comment: "work is happening in https://github.com/futures/fcrepo4/tree/cnd-to-rdfs" https://www.pivotaltracker.com/story/show/53804961
* edInCo joins14:20
<cbeer>aawoods: are we committed to pivotal for the beta? are there any grumblings about using JIRA again?14:38
* github-ff joins14:41
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/-nAa0A
fcrepo4/master d6b07dc Chris Beer: add Link[rel=first] header to RDF responses
* github-ff leaves
<aawoods>cbeer: I was assuming pivotal... have you heard grumblings?14:44
* jcoyne wants more graphs and metrics14:45
;)
<aawoods>jcoyne: and which tool does that argue for?14:46
<jcoyne>aawoods: Oh, I'm just trying to get kicked out of the channel. Don't mind me.
<aawoods>try profanity towards members of the channel.14:47
<barmintor>aawoods edInCo do y'all have any opinions RE: that email I just sent to fcrepo-dev?14:51
* barmintor listens to the crickets14:55
<aawoods>barmintor: adding a rebuilder to the verify phase sounds reasonable, if it is feasible. Is it worth the effort to automate that testing for this last release?
I doubt you will find any objections.14:57
<barmintor>aawoods: I think so- tmy first line of analysis for bug reports is "can you run mvn verify/install"
<aawoods>go for it14:59
<barmintor>and even if 3.x is in "security patches only" mode, I think we'll still get bug reports that should be responded to, right?
Just from a community-maintenance perspective.
ok, thanks
<aawoods>barmintor: we will definitely need to support security patches...
bugs will need to be evaluated for priority.15:00
* travis-ci joins
[travis-ci] futures/fcrepo4#930 (master - d6b07dc : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/c7e62ad413a8...d6b07dcfa86e
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/9486372
* travis-ci leaves
* bljenkins leaves15:21
* kaarefc leaves
* bljenkins joins
* kaarefc joins
* daniellamb joins15:32
<cbeer>aawoods: no, no grumblings. there's a pivotal event nearby, and as long we're going to continue using it, i might think about going16:16
barmintor: columbia is part of the incommon ssl consortium, right?16:18
<barmintor>I dunno16:19
<jcoyne>cbeer: "pivotal event" is code for "recruiting developers". If they get you you'll have to pair program all the time!16:20
<barmintor>A while back cbeer reported a bug in FCR3.6. eddies1 fixed it, but included no test coverage.16:21
<cbeer>tsk tsk
<edInCo>barmintor: according to Columbia IT you are http://services.cuit.columbia.edu/ssl-server-certificates-incommon16:23
* daniellamb leaves
<barmintor>edInCo thanks!16:24
<cbeer>excellent. barmintor: if you think the sysadmin pool wouldn't get annoyed at it, i'd like to get a proper ssl cert for gluck.16:26
<barmintor>they love all gluck support requests
<cbeer>barmintor: i'm sure. i could also harass aawoods to get some certs minted for fcrepo.org and be happy enough16:28
but i figured getting incommon certs signed is both free and pretty easy
in any case, i think i've got gluck sorted out again.16:31
i haven't re-enabled the fcrepo jmeter job yet, but might try that next week
<pivotal-bot>Chris Beer added "update kitchen sink to build alpha 2 snapshots" https://www.pivotaltracker.com/story/show/5406518116:38
Chris Beer started "update kitchen sink to build alpha 2 snapshots" https://www.pivotaltracker.com/story/show/54065181
<bljenkins>Project fcrepo-fixity-corrupter build #204: SUCCESS in 3 min 1 sec: http://ci.fcrepo.org/jenkins/job/fcrepo-fixity-corrupter/204/16:40
Project fcrepo-kitchen-sink build #470: SUCCESS in 9 min 11 sec: http://ci.fcrepo.org/jenkins/job/fcrepo-kitchen-sink/470/16:41
<barmintor>cbeer: your request has been sent into the intertubes
<aawoods>on a call
<cbeer>barmintor: thanks. worst case they ignore it and we're no worse off than we are now16:42
* github-ff joins16:56
[fcrepo-kitchen-sink] cbeer pushed 1 new commit to master: http://git.io/Qg1Dtw
fcrepo-kitchen-sink/master 167312c Chris Beer: update kitchen sink to use alpha 2 snapshot dependencies
* github-ff leaves
<pivotal-bot>Chris Beer accepted "update kitchen sink to build alpha 2 snapshots" https://www.pivotaltracker.com/story/show/5406518116:57
<cbeer>barmintor: is there a fcrepo 3.7 snapshot war somewhere?16:58
<barmintor>Ahhh…no.16:59
In fact, the version is still 3.6.3-SNAPSHOT
maybe tomorrow
<cbeer>i guess before i care, i should see if i actually am a reporter on anything in that release
<barmintor>I think just one issue17:00
<cbeer>FCREPO-1141: CLOSED WONTFIX don't get into a situation where you need the rebuilder and don't have root access17:01
<barmintor>Oh, you have a closed issue (URL-encoded PID in the REST rel API URL) and an open issue (FCREPO-1141)
<cbeer>ah, but it's a dupe of 1187. off the hook!17:03
<barmintor>:P
thanks for looking at your issues, though
I'm so sick of this release
<cbeer>good thing we have aawoods to do the next one17:04
<barmintor>Ok, I was here until forever o'clock last night, so… bye til tomorrow!
* barmintor leaves
<aawoods>on a call ;)
<bljenkins>Project fcrepo-kitchen-sink build #471: SUCCESS in 8 min 42 sec: http://ci.fcrepo.org/jenkins/job/fcrepo-kitchen-sink/471/17:05
* kaarefc leaves17:06
<aawoods>cbeer: which app on gluck would the cert be used for?17:34
<cbeer>aawoods: jenkins, sonar and maven.
<aawoods>hmm... does something complain about maven not having a cert? are there ssl calls going to any of those apps?17:35
<cbeer>aawoods: no. i just complained. something local reminded me that probably having a cert would be nice17:36
* jcoyne leaves
<aawoods>a cert could be nice... but no rush. I will put in a ticket.17:38
<cbeer>aawoods: cool, thanks. they should be able to do subject alt names to cover all 3 of those hosts17:39
<aawoods>or wildcard if we foresee additional subdomains.
<cbeer>fcrepo on top of mongo? really?17:40
<aawoods>mongo and modeshape are basically interchangeable.17:42
<cbeer>oh, yeah. no problem.17:43
<aawoods>at least the first two letters are the same.
<cbeer>we can probably make the same durability promises too
maven-license-plugin--17:45
yeah, let me claim copyright for essentially boiler plate code i didn't even right.17:46
s/right/write/
<pivotal-bot>Chris Beer estimated "Support LDP-style HTTP PATCH requests" as 1 point https://www.pivotaltracker.com/story/show/5380545117:58
Chris Beer started "Support LDP-style HTTP PATCH requests" https://www.pivotaltracker.com/story/show/53805451
Chris Beer estimated "Add PUT to the describe endpoint with a bag of triples to REPLACE existing triples" as 1 point https://www.pivotaltracker.com/story/show/5082489518:27
Chris Beer started "Add PUT to the describe endpoint with a bag of triples to REPLACE existing triples" https://www.pivotaltracker.com/story/show/50824895
* ksclarke leaves18:29
<cbeer>ff-tech: eventually consistent.18:46
<pivotal-bot>Chris Beer added ""upgrade" LDP inlined resources to inlined member resources" https://www.pivotaltracker.com/story/show/5407462918:51
* ksclarke joins19:14
* edInCo leaves19:30
<pivotal-bot>Chris Beer added "Allow PUT requests to create new nodes" https://www.pivotaltracker.com/story/show/5407690319:36
Chris Beer finished "Support LDP-style HTTP PATCH requests" https://www.pivotaltracker.com/story/show/5380545119:43
Chris Beer finished "Add PUT to the describe endpoint with a bag of triples to REPLACE existing triples" https://www.pivotaltracker.com/story/show/50824895
* github-ff joins19:45
[fcrepo4] cbeer pushed 2 new commits to master: http://git.io/VFjW8A
fcrepo4/master 3da9957 Chris Beer: Support PATCH requests as sparql-update queries; make PUT replace the current properties with new data
fcrepo4/master eb9d244 Chris Beer: advertise FedoraNodes as LDP Resources
* github-ff leaves
<pivotal-bot>Chris Beer added comment: "https://github.com/futures/fcrepo4/commit/3da9957361859d16358a13856c631930327bba61" https://www.pivotaltracker.com/story/show/5082489519:46
Chris Beer added comment: "https://github.com/futures/fcrepo4/commit/3da9957361859d16358a13856c631930327bba61" https://www.pivotaltracker.com/story/show/53805451
Chris Beer delivered "Support LDP-style HTTP PATCH requests" https://www.pivotaltracker.com/story/show/5380545119:49
Chris Beer delivered "Add PUT to the describe endpoint with a bag of triples to REPLACE existing triples" https://www.pivotaltracker.com/story/show/50824895
Chris Beer added comment: "blocked by MODE-1997" https://www.pivotaltracker.com/story/show/53804961
Chris Beer delivered "Use LDP style RDF paging for search" https://www.pivotaltracker.com/story/show/53805387
Chris Beer delivered "Support LDP-style resource inlining" https://www.pivotaltracker.com/story/show/53805739
Chris Beer added comment: "work is happening in https://github.com/futures/fcrepo4/tree/cnd-to-rdfs" https://www.pivotaltracker.com/story/show/5372244919:50
<bljenkins>Project fcrepo4 build #1066: FAILURE in 7 min 13 sec: http://ci.fcrepo.org/jenkins/job/fcrepo4/1066/19:52
* Chris Beer: Support PATCH requests as sparql-update queries; make PUT replace the current properties with new data
* Chris Beer: advertise FedoraNodes as LDP Resources
* travis-ci joins19:53
[travis-ci] futures/fcrepo4#931 (master - eb9d244 : Chris Beer): The build has errored.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/d6b07dcfa86e...eb9d244a522d
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/9496669
* travis-ci leaves
<cbeer>aawoods: if we get serious about LDP, it looks like Stanford is a w3c member19:57
<aawoods>cbeer: Are you suggesting we could potentially have a say at the table in terms of driving changes?20:11
<cbeer>aawoods: if we care to, and think that's better than griping on the public list.
<aawoods>that is a handy card to have in our pocket. Have you come across anything that rubs you the wrong way in the spec?20:12
<cbeer>so far, just bad editing.20:13
<aawoods>it should be in a wiki20:14
* cbeer leaves21:49
* pivotal-bot leaves
* cbeer joins22:33
* kaarefc joins22:41
* pivotal-bot joins23:03
* bljenkins leaves
<pivotal-bot>Chris Beer added comment: "test" https://www.pivotaltracker.com/story/show/50824895
* bljenkins joins23:08
* bljenkins leaves00:07
* bljenkins joins00:12
* kaarefc leaves00:23

Generated by Sualtam